Kev*_*ata 103 javascript node.js mjs
我已经开始在一个基于 Node.js 的现有项目上工作。我只是想了解执行流程,在那里我遇到了一些*.mjs文件。我搜索了网络,发现这些是基于模块的 JS 文件。
我想知道它与*.js文件有什么不同(它有什么好处)?
Que*_*tin 133
它表示一个 ES6 模块文件。
Node.js 的原始模块系统是CommonJs(使用require和module.exports)。
自从 Node.js 创建以来,ECMAScript 模块系统(使用import和export)已经成为标准,并且 Node.js 增加了对它的支持。
Node.js 会将.cjs文件视为 CommonJS 模块,将.mjs文件视为 ECMAScript 模块。它会将.js文件视为项目的默认模块系统(除非package.json说的是 CommonJS "type": "module",)。
Biv*_*nod 46
.MJS 文件
- mjs 是 EcmaScript 模块的扩展
- MJS 文件是包含用于 Node.js 应用程序的 ES 模块(ECMAScript 模块)的源代码文件。
MJS 文件是用 JavaScript 编写的,也可能在 Node.js 上下文之外使用 .JS 扩展名。
ES 模块允许 Web 和应用程序开发人员将代码组织成更小的可重用组件。
ECMAScript 6 (ES6) 引入了 ES Modules 规范,提供了在 JavaScript 中实现模块的标准。截至 2018 年,所有主要的 Web 浏览器都支持 ES 模块。
然而,模块化 JavaScript 的流行早于 ES6。Node.js 是一种 JavaScript 运行时环境,使用 CommonJS 作为模块规范。因为现有的很多应用都是用CommonJS构建的,所以Node.js在添加对原生ES模块的支持时,颇有争议地引入了MJS文件扩展名来区分两者,防止应用崩溃。
注意:一些开发人员非正式地将 MJS 文件称为“迈克尔杰克逊脚本”文件。
为清楚起见。对于开发人员/人类,很容易区分模块文件(.mjs)和普通的 javascript 文件(.js)...因为即使您检查文件中的代码也并不总是容易确定。
还有一些性能优势,让您有更多理由考虑使用它。V8(支持 Google Chrome 的 JavaScript 引擎)推荐使用 .mjs,但这仍然取决于您的情况。如果您想了解更多它的优点,请查看https://v8.dev/features/modules#mjs
| 归档时间: |
|
| 查看次数: |
55701 次 |
| 最近记录: |