我在用
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-env": "^1.4.0",
"babili-webpack-plugin": "0.0.11",
"webpack": "^2.5.1"
在我的
webpack.config.js
中,我声明了一些外部依赖项:externals: {
"package-one": "package-one",
"package-two": "package-two"
},
babel加载程序配置为:
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['env']
}
}
}
]
}
然后我使用以下软件包在使用这些软件包的JS文件上启动转译:
const p1 = require('package-one');
const p2 = require('package-two');
但是,转译的输出显示:
(function(module, exports) {
module.exports = package-one;
}),
(function(module, exports) {
module.exports = package-two;
})
如您所见,导出文件没有被“”包围,这会导致最终版本出错。我在这里可能想念什么?
最佳答案
查看documentation。
它说明了应如何使用外部
externals: {
// require("jquery") is external and available
// on the global var jQuery
"jquery": "jQuery"
}
因此,您需要为外部库的全局变量提供一个有效的名称,如下所示:
externals: {
"package-one": "packageOne",
"package-two": "packageTwo"
},
但是当然,packageOne和packageTwo必须作为全局存在,这就是使用外部变量的意图。