Javascript webpackConfig上的ESM导入

Javascript webpackConfig上的ESM导入,javascript,npm,webpack,config,Javascript,Npm,Webpack,Config,我正在构建一个webpack应用程序,我对在整个应用程序中使用ESM感兴趣,这意味着使用ESM导入构建webpack.config文件 我现在可以使用Babel实现这一点,但这是在npm添加“type”:“module”之前,现在支持ESM导入而不使用Babel。。。我已经在Express上试用过了,但在Webpack上我得到了以下结果: > ...proyectDirectory/node_modules/webpack-cli/bin/cli.js:93 > require()

我正在构建一个webpack应用程序,我对在整个应用程序中使用ESM感兴趣,这意味着使用ESM导入构建webpack.config文件

我现在可以使用Babel实现这一点,但这是在npm添加
“type”:“module”
之前,现在支持ESM导入而不使用Babel。。。我已经在Express上试用过了,但在Webpack上我得到了以下结果:

> ...proyectDirectory/node_modules/webpack-cli/bin/cli.js:93

> require() of ES modules is not supported.

所以我想知道是否有一个版本的webpack cli使用
import
而不是
require

webpack cli需要一个commonJS文件。有对
.mjs
文件的实验支持,可以使用
experiments.mjs
标志启用该文件,但似乎存在许多问题。因此,您可以使用无配置或
.cjs
配置来使用webpack:

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

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

至少更新到webpack cli 4.5.0。刚刚添加了对本机ESM配置文件的支持:

这意味着,如果您在其package.json中包含
{“type”:“module”}
的目录中使用
webpack.config.js
,它将正常工作


如果您只需将文件命名为
webpack.config.mjs

,它也会起作用。这是否回答了您的问题?不,它不是-巴贝尔是node.js中使用ES6的古老方式,现在node支持ESM,但似乎有些库没有采用这种方式。