.js文件和 .mjs 文件之间有什么区别?
2022-08-30 00:54:10
我已经开始处理一个基于Node.js的现有项目。我只是试图理解执行流程,在那里我遇到了一些文件。我在网上搜索了一下,发现这些是基于模块的JS文件。*.mjs
我想知道它与文件有何不同(它如何受益)?*.js
我已经开始处理一个基于Node.js的现有项目。我只是试图理解执行流程,在那里我遇到了一些文件。我在网上搜索了一下,发现这些是基于模块的JS文件。*.mjs
我想知道它与文件有何不同(它如何受益)?*.js
它指示 ES6 模块文件。
Node.js的原始模块系统是CommonJs(它使用和)。require
module.exports
自从 Node.js 创建以来,ECMAScript 模块系统(使用 和 )已成为标准,Node.js 增加了对它的支持。import
export
Node.js将文件视为 CommonJS 模块,将文件视为 ECMAScript 模块。它将文件视为项目的默认模块系统(除非 package.json 说 ),否则它是 CommonJS。.cjs
.mjs
.js
"type": "module",
.MJS 文件
- mjs an extension for EcmaScript modules
- MJS 文件是包含 ES 模块(ECMAScript 模块)的源代码文件,用于 Node.js 应用程序。
MJS文件是用JavaScript编写的,也可以在Node.js上下文之外使用.JS扩展名。
ES模块允许Web和应用程序开发人员将代码组织成更小的可重用组件。
ECMAScript 6 (ES6) 引入了 ES 模块的规范,为在 JavaScript 中实现模块提供了一个标准。截至2018年,所有主要的Web浏览器都支持ES模块。
然而,模块化JavaScript的普及早于ES6。Node.js是一个JavaScript运行时环境,它使用CommonJS作为模块的规范。由于许多现有应用程序都是使用CommonJS构建的,因此当Node.js添加了对本机ES模块的支持时,它提出了有争议的MJS文件扩展名来区分两者并防止应用程序中断。
注意:一些开发人员非正式地将MJS文件称为“迈克尔杰克逊脚本”文件。