从Node.js 13.2开始,支持ES模块而没有标志。我有一个支持babel的ES模块语法的大型项目,现在我想尽可能删除babel。但是,这似乎并不像在我的"type": "module"
上添加package.json
并删除babel那样简单。
其中之一是,我的任何导入语句最后都没有包含.js
。大多数看起来像import Thing from './thing'
,是用来从thing.js
文件导入默认导出的。 ES模块的Node实现似乎最后需要.js
(如果没有它,我会得到一个Cannot find module...
错误)。我希望不必四处重命名我的每个进口商品,以.js
结尾。
我还有大量的模块组织为文件夹,其中包含index.js
,用于控制模块的公共界面。每次使用此功能时,只会导入文件夹名称(import Thing2, { otherThing } from './thing2
会导入./thing2/index.js
的默认导出)。这似乎也给了我一个Cannot find module...
错误,再次,我不想将所有内容都更改为import from ./thing2/index.js
。
我实际上不是在乎ES模块规范,而只是一些额外的Babel糖吗?是否仍会在Node中对此提供支持?找不到文档来解释Node应该如何处理这两个示例的问题。