我已经开始基于Node.js的现有项目工作。我只是想了解执行的流动,我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的JS文件。

我想知道它与*.js文件(它如何受益)?

答案

它指示一个ES6模块文件。


Node.js的原始模块系统是commonjs(使用requiremodule.exports)。

由于创建了node.js,ECMAScript模块系统(使用importexport)已成为标准,node.js为其增加了支持。

node.js会治疗.cjs文件作为commonjs模块和.mjs文件作为eCmascript模块。它将对待.js文件作为项目的默认模块系统是什么(除非包.json"type": "module",)。

也可以看看:ES6模块系统和CommonJs的区别

来自: stackoverflow.com