将 webpack 和 mocha 与 ES6 模块一起使用

Using webpack and mocha with ES6 modules

我有一个前端 JS 项目。我想在我的项目中使用 Mocha for testing and webpack for bundling. I use ES6 modules

Mocha 要求将我的包的 type 设置为 module,如 所述。 虽然 webpack 在这种情况下失败

[webpack-cli] Failed to load 'webpack.config.js'
[webpack-cli] TypeError: Invalid host defined options
...

如何在 ES6 项目中使用 mocha 和 webpack?

TL;DR

webpack.config.js 重命名为 webpack.config.cjs


问题是 webpack doesn't support ES6 config file。这意味着当你将一个包的 type 设置为 module webpack.config.js 解释为 ES6 模块,目前还不支持。

Solutions/workarounds:

  1. 将包的 type 设置为 module 并将 webpack.config.js 重命名为 webpack.config.cjs 结果整个项目将被解释为 ES6 模块, 除了 webpack.config.cjs 仍然是 commonjs 文件。

  2. 保留包 commonjstype 并将所有文件重命名为 mjswebpack.config.js 除外)

  3. 使用不同的打包器,例如 rollup。