如何“编译”模块?

时间:2019-07-04 00:06:36

标签: webpack

我不知道该如何表达这个问题,因此我将举一个例子。 (随时将问题标题编辑为更合适的内容)

考虑以下示例:

    import foo from 'foo'
    import bar from 'bar'

    import DATA from './data.json'

    const MY_DATA = foo.process(DATA).filter(bar.isBar)

    export default class {
        get data() {
            return MY_DATA
        }

        propA = true

        methodB() {
            // ...
        }
    }

是否可以导入仅由Webpack捆绑的此类(以及MY_DATA的内容)的此模块?也就是说,以某种方式明确表明我不想在此块中包括“ foo”,“ bar”或“ ./data.json”。

在过去,我会使用ignore插件来执行此操作,但是我不确定这是否仍然是Webpack 4的唯一选择,因为在整个构建过程中忽略模块并不总是令人满意的效果。

感谢任何提示!

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找externals。 从Docs

  

防止捆绑某些导入的软件包,而是检索   运行时这些外部依赖项。

module.exports = {
  //...
  externals: {
    foo: 'foo',
    bar: 'bar',

    DATA: './data.json'
  }
};

这需要您将外部化的脚本手动添加到HTML文档中。