首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.js文件和.mjs文件有什么不同?

.js文件和.mjs文件有什么不同?
EN

Stack Overflow用户
提问于 2019-08-14 18:04:32
回答 3查看 71.2K关注 0票数 139

我已经开始从事一个基于Node.js的现有项目。我只是想了解执行的流程,我遇到了一些*.mjs文件。我在网上搜索了一下,发现这些都是基于模块的JS文件。

我想知道它与*.js文件有什么不同(它有什么好处)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-14 18:08:02

表示ES6模块文件。

‘s最初的模块系统是CommonJs (使用requiremodule.exports)。

自从Node.js被创建以来,ECMAScript module system (使用importexport)已经成为标准,并且Node.js添加了对它的支持。

Node.js将.cjs文件视为CommonJS模块,将.mjs文件视为ECMAScript模块。它将.js文件视为项目的默认模块系统(除非package.json指定为"type": "module",,否则默认模块系统为CommonJS )。

另请参阅:Differences between ES6 module system and CommonJs

票数 191
EN

Stack Overflow用户

发布于 2019-08-19 21:23:47

.MJS文件

  • mjs EcmaScript模块的扩展
  • 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文件称为"Michael Jackson Script“文件。

票数 55
EN

Stack Overflow用户

发布于 2020-07-26 08:49:01

用于clarity的。对于开发人员/人类来说,很容易区分模块文件(.mjs)和普通的javascript文件(.js)……因为即使检查文件中的代码,也不总是很容易确定。

还有性能上的好处,这让你有更多的理由考虑使用它。V8( Google Chrome的JavaScript引擎)推荐使用.mjs,但这仍然取决于你的情况。如果你想了解更多的优点,请查看https://v8.dev/features/modules#mjs

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57492546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档