webpack配置如下啦:
const webpack = require('webpack')
const path = require('path')
const config = {
context: path.resolve(__dirname, '../src'),
entry: '../src/app.js',
output: {
path: path.resolve(__dirname, '../dist'),
filename: 'bundle.js'
},
module: {
rules: [{
test: /\.js$/,
include: path.resolve(__dirname, '../src'),
use: [{
loader: 'babel-loader',
options: {
presets: ['env']
}
}]
}]
},
plugins:[
]
}
module.exports = config
使用如上的webpack
配置,打包app.js
如下:
import a from './a'
import b from './b'
export{
a,
b
}
打包完发布npm
,另一个项目使用该模块包,import {a} from xxx
,却拿不到a或者b的值
分别为undefined
,这是为啥?(上述打包一切正常,已使用babel
转换,依赖引入的也是转换后的es5
代码)求指教!
在webpack中,import语句是用来导入模块的,如果import语句中的值为空或undefined,那么模块并不会被引入到项目中。
这是因为webpack编译模块的时候,会检查导入的值是否为空或undefined。如果值为空或undefined,那么webpack就会认为这个模块并没有被导入,所以不会引入到项目中。
如果你想让webpack将import语句中的值导入到项目中,你需要在import语句中使用"()"来导入模块。例如:
javascript
import MyModule from './MyModule';
这样,webpack就会将MyModule模块导入到项目中。如果你只是想导入模块的值,那么你不需要使用"()"来导入模块。例如:
javascript
import MyModule from './MyModule';
console.log(MyModule); // 输出:MyModule
这样,webpack就不会将MyModule模块导入到项目中。