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

问题描述 投票:0回答:2

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

我正在为与浏览器客户端的 webpack 捆绑在一起的

.js
文件编写测试。 我想在nodejs 中运行这些测试。有一个“build.js”脚本不使用 es6 模块,它是一个 commonjs 模块 - 所以更新
package.json
会破坏它。

有办法做到这一点还是一切都从根本上被破坏了?

编辑:在我的解决方法之后,它仍然并没有真正起作用,因为现在 webpack 已损坏。

node.js es6-modules
2个回答
2
投票

我刚刚创建了一个带有自己的

package.json
的子目录,其中设置了
"type": "module"
,这样它就不会破坏其外部的任何 commonjs 脚本,但内部的所有内容都可以导入其他 es6 模块。

所以,是的,一切都从根本上被破坏了,但有一个解决方法。


0
投票

自节点

v21.1.0
起,请参阅 release

您可以使用

--experimental-detect-module
标志,这样就不再需要
"type":
中的
package.json
或使用
.mjs/.cjs
扩展。

© www.soinside.com 2019 - 2024. All rights reserved.