我决心找到一种方法来做到这一点。原因如下:
我正在为与浏览器客户端的 webpack 捆绑在一起的
.js
文件编写测试。
我想在nodejs 中运行这些测试。有一个“build.js”脚本不使用 es6 模块,它是一个 commonjs 模块 - 所以更新 package.json
会破坏它。
有办法做到这一点还是一切都从根本上被破坏了?
编辑:在我的解决方法之后,它仍然并没有真正起作用,因为现在 webpack 已损坏。
我刚刚创建了一个带有自己的
package.json
的子目录,其中设置了 "type": "module"
,这样它就不会破坏其外部的任何 commonjs 脚本,但内部的所有内容都可以导入其他 es6 模块。
所以,是的,一切都从根本上被破坏了,但有一个解决方法。
自节点
v21.1.0
起,请参阅 release。
您可以使用
--experimental-detect-module
标志,这样就不再需要 "type":
中的 package.json
或使用 .mjs/.cjs
扩展。