我正在尝试使用webpack修改当前项目。在我的脚本上,我正在使用lodash库,但是我也有一些不在ES6上编写的脚本,因此我使用普通脚本标签在全球范围内加载lodash。 根据webpack文档,我在webpack(https://webpack.js.org/configuration/externals/)上添加了以下配置。
lodash : {
commonjs: 'lodash',
amd: 'lodash',
root: '_' // indicates global variable
},
我使用babel编译代码没有任何问题,但是当执行实际代码时,出现以下错误 “ TypeError:无法读取未定义的属性'forEach'”
如果我从文件中删除了import _ from "lodash";
语句,则该问题已解决,脚本可以按预期工作,就像_在全局上一样。
但是,这在没有添加正确的外部组件的情况下也可以正常工作吗?根据jquery的webpack例子
module.exports = {
//...
externals: {
jquery: 'jQuery'
}
};
下面的代码将保持不变
import $ from 'jquery';
$('.my-element').animate(/* ... */);
就我而言,为什么不起作用?有什么建议么 ?想法?
答案 0 :(得分:0)
我想我找到了解决方案,一遍又一遍地阅读文档后,我注意到该消息也在黄色边框上
An object with { root, amd, commonjs, ... } is only allowed for libraryTarget: 'umd'. It's not allowed for other library targets.
所以我从
更改了配置lodash : {
commonjs: 'lodash',
amd: 'lodash',
root: '_' // indicates global variable
}
到
lodash: '_'
问题已解决,现在可以按预期运行。如果我理解为什么这是一个问题,那当然很好