Babel.js Node.js --experimental-vm-modules命令行选项与“类型”:package.json中的“模块”

vuktfyat  于 2022-12-08  发布在  Babel
关注(0)|答案(1)|浏览(180)

我目前正在重写一个NodeJS项目,从一个混乱的CommonJS和Babel移植的ES模块的组合,以完全基于ES模块。
在这个过程中,我对Node处理这些事情的方式感到有点困惑,我试着去阅读它,但我似乎错过了我理解中的最后一部分。
我假设我将不再需要使用Babel来移植ES模块。这似乎是正确的。但是,当我运行我的(Jest)测试时,我仍然需要使用--experimental-vm-modules节点标志来使一切正常工作。
我的问题是:这个标志是做什么的?阅读文档,它似乎启用了ES模块,但我不是已经通过指定“type”启用了ES模块吗:“模块”的名称?
相关链接:

4nkexdtk

4nkexdtk1#

指定类型:json中的“module”只是告诉库作者您的源代码基于ESM。
对于jest,您需要使用experimental-vm-modules,因为jest用于启用ESM支持的节点api在节点18.x中仍然不稳定
https://jestjs.io/docs/ecmascript-modules

相关问题