.js、.mjs和.cjs的区别
.js是默认语法,.mjs是ES Module规范的模块化语法,.cjs是CommonJS规范的模块化语法。
.cjs和.mjs的区别
- CommonJS规范是Node.js的模块化规范,ES Module规范是ES6的模块化规范。
- CommonJS规范的模块化语法
require()是同步的,ES Module规范的模块化语法import()是异步的。 - CommonJS规范的模块化语法是运行时加载,ES Module规范的模块化语法是编译时加载。
不同文件的使用方式
-
.js文件
.js文件是默认语法,是Node.js的模块化规范。 -
.mjs文件
.mjs文件是ES Module规范的模块化语法。
HTML文件使用.mjs的时候,通过<script type="module">来引入。 在nodejs环境使用.mjs的时候,需要在package.json文件中显性地指明。"type": "module" -
.cjs文件
.cjs文件是CommonJS规范的模块化语法。
HTML文件使用.mjs的时候,通过<script type="text/javascript">来引入。 在nodejs环境下默认是使用.cjs文件,所有不需要在package.json文件中显性指明。