要解决这个问题,你可以使用@babel/preset-env包中的modules选项来指定不对Node.js模块进行转译。这样Babel将保留import/export语法并将其转换为Node.js模块的require/module.exports语法。
以下是一个解决方法的示例代码:
首先,安装@babel/preset-env包:
npm install @babel/preset-env
然后,在你的Babel配置文件(通常是.babelrc或babel.config.js)中,添加@babel/preset-env并指定modules选项为'auto':
{
"presets": [
[
"@babel/preset-env",
{
"modules": "auto"
}
]
]
}
这将告诉Babel根据目标环境自动选择是否对模块进行转译。当目标环境是Node.js时,Babel将保留import/export语法。
请注意,这种方法假设你已经正确设置了Babel和相关的插件和预设。