如何在节点中作为 esmodule 运行“.js”文件,而不在 package.json 中设置类型或更改扩展名

Ker*_*mos 6 node.js es6-modules

我决心找到一种方法来做到这一点。原因如下:

.js我正在为浏览器客户端与 webpack 捆绑在一起的文件编写测试。我想在nodejs 中运行这些测试。有一个“build.js”脚本不使用 es6 模块,它是一个 commonjs 模块 - 所以更新package.json会破坏它。

有没有办法做到这一点,或者一切都从根本上被破坏了?

编辑:在我的解决方法之后,它仍然无法真正工作,因为现在 webpack 已损坏。

Fil*_*man 2

从 Node 开始v21.1.0,请参阅release

您可以使用标志,这消除了对in或使用扩展的--experimental-detect-module要求。"type":package.json.mjs/.cjs