使用此配置:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "16"
}
}
]
]
}
... Babel将import
/export
语法转换为CommonJS(require
)。
如何更改以便Babel保留import
和export
语法,这样我就可以将生成的输出作为ES模块运行(例如,使用node
和.mjs
扩展名运行它)?
我尝试过将"esmodules": true
添加到targets
,但与"node": "16"
结合使用时似乎没有任何区别。
1条答案
按热度按时间gwo2fgha1#
我刚刚遇到了同样的问题。我想到的最好的“解决方案”是简单地不使用
preset-env
的代码。由于较新版本的Node基本上支持preset-env目前包括的所有特性,我只是没有应用它,我只会在需要的时候应用插件作为实验性的解决方案。对于旧版本的Node来说,这不是一个很好的解决方案,但对于最近的版本来说已经足够了。