问题描述
我想慢慢地将我的 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 (将#修改为@)