是否有关于如何从 NodeJS CJS + Babel 迁移到 NodeJS MJS 的策略?

问题描述

我想慢慢地将我的 NodeJS 项目迁移到一个模块风格的项目中。虽然有很多关于如何从 mjs 使用 cjs 的知识,反之亦然,但我也在循环中使用 Babel,我对发生的事情感到非常困惑。

目前我有一个 Commonjs 节点项目(从节点 v4 开始)。由于 Babel,大约 80% 的项目看起来像 MJS(使用导入和导出)。现在我正在慢慢地把小文件改成原生MJS,以便转换整个项目。

我注意到 babel 会认将 MJS 文件转换为 JS 文件。所以 1) 进口不起作用; 2)我不想在 MJS 中使用 Babel,因为我希望我最终可以摆脱它。因此,我将 **/*.mjs 文件添加.babelrc 文件中的忽略列表,并在 .js,.cjs 要求代码中将文件扩展名固定为 babel/regiter

此后,NodeJS 一直抱怨 .mjs 文件具有未知令牌 export。如果我运行单个 .mjs 文件 - 一切都很好,除非它导入一个包含 import 的 cjs 文件,并且没有被 babel 转译,因为我没有从根文件运行所有内容注册 babel...

有没有办法让 babel 转译 cjs (js) 文件并保持 mjs 文件原样,而 node 将 mjs 文件解释为原生模块?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...