###### JS(.js )和MJS (.mjs )文件有什么区别?
![nodejs.jpeg][1]

ECMAScript 6 (ES6) 引入了 ES Modules 规范,提供了在 JavaScript 中实现模块的标准。

截至 2022 年,所有主要的 Web 浏览器都支持 ES 模块。

ECMAScript 模块系统(使用importexport)已经成为标准,并且 Node.js 增加了对它的支持。

然而,模块化 JavaScript 的流行早于 ES6。

Node.js 是一种 JavaScript 运行时环境,使用 CommonJs(使用requiremodule.exports)作为模块规范。

现有的很多应用都是用 CommonJS 构建的,所以Node.js在添加对 原生ES模块 的支持时,颇有争议地引入了MJS文件扩展名来区分两者,防止应用崩溃

Node.js 会将.cjs文件视为 CommonJS 模块,将.mjs文件视为 ECMAScript 模块

它会将.js文件视为项目的 默认模块系统(除非package.json说的是 CommonJS "type": "module",)。

简而言之,它是用于 Node.js 区分 CommonJS (.js)和 ES6模块文件(.mjs)。

[1]: http://www.gonwe.cn/usr/uploads/2022/09/1626747462.jpeg