我已经开始从事一个基于Node.js的现有项目。我只是想了解执行的流程,我遇到了一些*.mjs文件。我在网上搜索了一下,发现这些都是基于模块的JS文件。
我想知道它与*.js文件有什么不同(它有什么好处)?
发布于 2019-08-14 18:08:02
表示ES6模块文件。
‘s最初的模块系统是CommonJs (使用require和module.exports)。
自从Node.js被创建以来,ECMAScript module system (使用import和export)已经成为标准,并且Node.js添加了对它的支持。
Node.js将.cjs文件视为CommonJS模块,将.mjs文件视为ECMAScript模块。它将.js文件视为项目的默认模块系统(除非package.json指定为"type": "module",,否则默认模块系统为CommonJS )。
发布于 2019-08-19 21:23:47
.MJS文件
ECMAScript 6 (ES6)引入了ES模块规范,为在JavaScript中实现模块提供了标准。自2018年起,所有主流web浏览器都支持ES模块。
然而,模块化JavaScript的流行早于ES6。Node.js是一个JavaScript运行时环境,它使用CommonJS作为模块的规范。由于许多现有的应用程序都是使用CommonJS构建的,当Node.js添加了对原生ES模块的支持时,它引入了MJS文件扩展名来区分两者并防止应用程序崩溃。
注意:一些开发人员非正式地将MJS文件称为"Michael Jackson Script“文件。
发布于 2020-07-26 08:49:01
用于clarity的。对于开发人员/人类来说,很容易区分模块文件(.mjs)和普通的javascript文件(.js)……因为即使检查文件中的代码,也不总是很容易确定。
还有性能上的好处,这让你有更多的理由考虑使用它。V8( Google Chrome的JavaScript引擎)推荐使用.mjs,但这仍然取决于你的情况。如果你想了解更多的优点,请查看https://v8.dev/features/modules#mjs
https://stackoverflow.com/questions/57492546
复制相似问题