在webpackConfig上导入ESM

时间:2020-07-25 03:12:39

标签: javascript npm webpack config

我正在构建一个Webpack应用程序,并且我有兴趣在整个应用程序中使用ESM,这意味着使用ESM导入来构建webpack.config文件。

我现在可以使用Babel,但这是在npm添加word.toLower().match(mtc)之前支持现在不带babel的ESM导入...我已经在Express上尝试过,并且可以使用Webpack,但我得到了: >

"type": "module"

所以我想知道是否有一个使用> ...proyectDirectory/node_modules/webpack-cli/bin/cli.js:93 > require() of ES modules is not supported. 而不是import的webpack-cli版本

2 个答案:

答案 0 :(得分:1)

至少更新到 webpack-cli 4.5.0。刚刚添加了对原生 ESM 配置文件的支持:https://github.com/webpack/webpack-cli/releases/tag/webpack-cli%404.5.0

这意味着如果您在 package.json 中包含 webpack.config.js 的目录中使用 {"type": "module"},它将起作用。

如果您简单地将文件命名为 webpack.config.mjs

答案 1 :(得分:0)

Webpack CLI需要一个commonJS文件。可以使用.mjs标志启用对experiments.mjs文件的实验性支持,但是似乎存在许多问题。因此,您可以通过不使用任何配置或使用.cjs的配置来使用webpack:

 ./node_modules/.bin/webpack-cli --config webpack.config.cjs

还请记住,截至目前,诸如Jest之类的功能不适用于esm,因此,如果不需要babel / esm,则需要使用另一个测试套件。