使用外部配置

时间:2019-05-13 14:37:22

标签: javascript webpack lodash webpack-externals

我正在尝试使用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(/* ... */);

就我而言,为什么不起作用?有什么建议么 ?想法?

1 个答案:

答案 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: '_'

问题已解决,现在可以按预期运行。如果我理解为什么这是一个问题,那当然很好