javascript - .js 和 .mjs 文件有什么区别?

标签 javascript node.js mjs

我已经开始研究基于 Node.js 的现有项目。我只是想了解执行流程,我遇到了一些 *.mjs文件。我搜索了网页,发现这些是基于模块的 JS 文件。
我想知道它与 *.js 有何不同文件(它有什么好处)?

最佳答案

它表示一个 ES6 模块文件。

Node.js的原始模块系统是CommonJs (使用 requiremodule.exports )。
由于创建了 Node.js,ECMAScript module system (使用 importexport )已成为标准,Node.js 已添加对它的支持。
Node.js 将处理 .cjs文件作为 CommonJS 模块和 .mjs文件作为 ECMAScript 模块。它将对待.js文件作为项目的默认模块系统是什么(这是 CommonJS,除非 package.json 说 "type": "module", )。
另见:Differences between ES6 module system and CommonJs

关于javascript - .js 和 .mjs 文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57492546/

相关文章:

javascript - 函数开始一遍又一遍地重复

javascript - react-fullpage.js - 如何在特定部分(而不是第一部分)加载网站?

javascript - 在 Electron JS 应用程序中使用自定义标题栏

javascript - Mocha 中无法修复的错误

node.js - 如何将 Keystone.JS 添加到现有 Express.js 应用程序?

javascript - 无法在 Node.js ES6 中使用 eval 创建变量

javascript - window.location.href 上的 jQuery 执行此代码

node.js - 如何使用 MongoDB 全文搜索创建自动完成

node.js - 在带有 ES 模块的 Node.js 中使用相对路径导入