Javascript 节点14 ECMAScript模块和包
对于节点对ECMAScript模块的本机支持,它们声明 有三种类型的说明符:Javascript 节点14 ECMAScript模块和包,javascript,node.js,Javascript,Node.js,对于节点对ECMAScript模块的本机支持,它们声明 有三种类型的说明符: 简单的说明符,如“some package”或“some package/shuffle”。它们可以通过包名引用包的主入口点,或者根据示例分别引用以包名为前缀的包内的特定功能模块。只有没有“导出”字段的包才需要包含文件扩展名 裸说明符的定义表明您可以从“包”导入ECMAScript模块 Node.js中的“包”是什么?节点是否只是用PACKAG.JSON文件搜索整个代码> NoDEYMease[/COD>文件夹],
node_modules/{{bare name}}
中,该目录具有加载的package.json
,并且具有正确的name
字段
节点是否只是用PACKAG.JSON文件搜索整个NoDEYMe饰件文件夹中的任何文件夹,并考虑一个包?还是比这更复杂
基本上,节点并不关心任何您尚未命名为导入的内容。它总是更复杂,算法被记录在案 CommonJS模块和ESMAScript模块是否相同 否,尽管解决程序包导出的部分在“程序包”定位并由or审查后共享)。巨大的差异是- ESM中不考虑全局
(即遍历节点\ u模块
、$node\ u路径
和节点$HOME
)$PREFIX
- ESM模块或
文件将不会通过mjs
加载require
- 没有本机或JSON导入
通常,ESM加载程序是CommonJS的一个更严格的子集,因为任何特定于节点的内容都不适用。+1谢谢@evert——不过,该文档似乎是针对通过require加载的CommonJS模块的。我对通过导入加载的ECMAScript模块感兴趣。我已经更新了我的问题,使这一点更清楚。足够公平!一个包可能只是
node\u modules
中的一个目录。但是,我假设您正在寻找我没有的参考资料。@Evert ESM版本: