欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

cjs" 和 "mjs" 文件分别是什么,它们是啥意思?

最编程 2024-02-23 12:52:47
...

最近我在安装一些包的时候,发现配置文件是.cjs,那么这个 .cjs 到底是什么呢?后面我去网上查资料,才了解什么是 cjs 和 mjs ,今天我将大致内容给大家做一个总结,如果大家深度了解,可以去看阮一峰老师的(Node.js 如何处理 ES6 模块 - 阮一峰的网络日志 (ruanyifeng.com))

1. 什么是 .cjs 和 .mjs ?

  1. .cjs 代表使用 CommonJS 模块
  2. .mjs 代表使用 ES 模块

2. 那为什么要这么麻烦分出两种模块呢?我直接 .js 行不行?

首先我们来了解一下两种模块的区别:

  1. CommonJS 模块的 require() 是同步加载的,而我们的 ES 模块的 import() 是异步加载的
  2. require() 不能加载 ES 模块,import 可以加载 CommonJs 模块,但是不能解构

当你 .cjs 的时候,那么就代表使用 CommonJs 模块规范,不能使用 ES 模块的 import 命令,.mjs 同理。

那如果两种模块我都想用怎么办?,是不是直接 .js 就行了?

  • 结果并不是,.js 会去 package.json 文件中寻找你的 type 字段来当规范,如果没有 type 字段,默认为 CommonJs 规范

如果两种模块都想用的话,最简单的就是使用 ES 模块,用 import() 导入 CommonJs 的代码

推荐阅读