【问题标题】:How to exclude a module from webpack, and instead import it using es6如何从 webpack 中排除模块,而是使用 es6 导入它
【发布时间】:2019-03-01 14:41:31
【问题描述】:

我目前正在使用 webpack 将 javascript 文件与 react 捆绑在一起。这个文件还有另一个导入语句到我的项目中的另一个模块

import { MyModule} from './MyModuleFile.js'

有没有办法从 webpack 包中排除 MyModule.js,而是保持原样导入?

【问题讨论】:

  • 查看Webpack docs about conditions:正如@connexo 建议的那样,您需要在Webpack 配置文件中排除您不希望Webpack 解析的部分。

标签: javascript es6-modules webpack-3


【解决方案1】:

您所追求的是webpack.config.js 中的externals 选项

module.exports = {
  //...
  externals: {
     './MyModuleFile': 'MyModule',
  }
};

【讨论】:

  • 这对我不起作用。 webpack 步骤有效,但我从 webpackMissingModule 得到“错误:找不到模块”,所以它显然仍然使用 webpack,而不是直接从浏览器加载 ES6 模块。有没有我遗漏的步骤?
  • 您的外部配置是什么?如何导入文件?
  • 您可以在这个单独的线程中查看所有详细信息:stackoverflow.com/questions/61050294/…
  • 但我是这样设置的:externals: { '/ffmpeg/ffmpeg-webm.js': 'ffmpeg', },
  • 然后像这样导入:import ffmpeg from '/ffmpeg/ffmpeg-webm.js';
【解决方案2】:

只需将其添加到 webpack.config.js 的加载程序配置中的 exclude 选项即可:

rules: [
  // rules for modules (configure loaders, parser options, etc.)
  {
    test: /\.js$/,
    exclude: [
      /node_modules/,
      /MyModuleFile/
    ],
    ...
  }
]

https://webpack.js.org/configuration/module/#rule-exclude

【讨论】:

  • 我认为 exclude 只会排除那些文件被转换,但它们仍然是捆绑的。我试了一下,发现我的文件仍然包含在包中,这是我要避免的。
猜你喜欢
  • 2017-05-21
  • 2018-11-12
  • 2021-11-27
  • 2020-02-14
  • 2016-11-26
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多