将 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:
将包的 type
设置为 module
并将 webpack.config.js
重命名为 webpack.config.cjs
结果整个项目将被解释为 ES6 模块, 除了 webpack.config.cjs
仍然是 commonjs
文件。
保留包 commonjs
的 type
并将所有文件重命名为 mjs
(webpack.config.js
除外)
使用不同的打包器,例如 rollup。
我有一个前端 JS 项目。我想在我的项目中使用 Mocha for testing and webpack for bundling. I use ES6 modules。
Mocha 要求将我的包的 type
设置为 module
,如
[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:
将包的
type
设置为module
并将webpack.config.js
重命名为webpack.config.cjs
结果整个项目将被解释为 ES6 模块, 除了webpack.config.cjs
仍然是commonjs
文件。保留包
commonjs
的type
并将所有文件重命名为mjs
(webpack.config.js
除外)使用不同的打包器,例如 rollup。