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

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

推荐答案

它表示ES6模块文件.


node .js最初的模块系统是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

Node.js相关问答推荐

如何在node.js中以随机顺序调用函数并按顺序操作

Sveltekit停靠的应用程序找不到从Build导入的包

Mongoose查询-如何根据当前查找ID获取其他集合并将其插入到当前查找中?

对于具有重叠列的组合键,在冲突&q;上没有唯一或排除约束匹配错误

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

编写动态创建的 YAML - 为生态系统创建 Docker compose 文件(使用 js-yaml)

Axios TypeError:将循环 struct 转换为 JSON

合并Shift对象数组以创建最终的排班表

Postgressql的BIGSERIAL自增序列,即使由于唯一约束错误没有创建行,也会自动增加

Mongoose post中间件触发deleteMany

Typescript 条件语句不过滤值?

Cloudflare 522 错误 - javascript 客户端连接到 node 服务器

node-gyp: "..\src\binding.cc: 没有这样的文件或目录"

制作一个接受命令行参数的脚本

使用 node.js 执行一个 exe 文件

构建 vue cli 后如何运行生产站点

无法获取 CSS 文件

我可以在 Heroku 中运行咖啡脚本吗?

如何从 Node.js 中的 URL 获取

NPM:为什么要安装这个包?