使用cjs或mjs

使用cjs或mjs

.cjs.mjs 是 Node.js 中用于区分 CommonJS 和 ECMAScript 模块的文件扩展名。

  • .cjs 扩展名用于 CommonJS 模块。CommonJS 是 Node.js 最初使用的模块系统,它使用 require()module.exports 来导入和导出模块。
  • .mjs 扩展名用于 ECMAScript 模块。这是 ECMAScript 6 中引入的模块系统,它使用 importexport 关键字来导入和导出模块。

Node.js 12 及以上版本支持 .mjs 文件扩展名来指示文件为 ECMAScript 模块。使用 .mjs 扩展名的文件将被 Node.js 解析为 ECMAScript 模块,并且可以使用 importexport 语法。

对于 Node.js 13 及以上版本,默认情况下,文件扩展名为 .js 的文件被视为 CommonJS 模块,而文件扩展名为 .mjs 的文件被视为 ECMAScript 模块。

如果你想要在 Node.js 中使用 ECMAScript 模块,你可以将文件的扩展名命名为 .mjs,并在文件中使用 importexport 语法。如果你想要使用 CommonJS 模块,你可以继续使用 .js 扩展名,并在文件中使用 require()module.exports

Node.js 可以运行 CommonJS 模块和 ECMAScript 模块。

  • CommonJS 模块是 Node.js 最初使用的模块系统,它使用 require()module.exports 来导入和导出模块。Node.js 早期版本默认支持 CommonJS 模块,并且 .js 扩展名的文件被视为 CommonJS 模块。
  • ECMAScript 模块是 ECMAScript 6 中引入的模块系统,它使用 importexport 关键字来导入和导出模块。Node.js 12 及以上版本支持 ECMAScript 模块,并且可以通过将文件扩展名命名为 .mjs 来指示文件为 ECMAScript 模块,或者在 package.json 文件中的 "type" 字段设置为 "module" 来启用 ECMAScript 模块支持。
  1. eslint.config.js:
    • 这是一个 CommonJS 格式的 ESLint 配置文件。它使用 module.exports 导出配置对象,并且可以在其中使用 CommonJS 的 require() 导入其他模块。这是 Node.js 默认支持的模块系统,适用于大多数 Node.js 项目。
  2. eslint.config.mjs:
    • 这是一个 ES6 模块格式的 ESLint 配置文件。它使用 export default 导出配置对象,并且可以在其中使用 ES6 的 import 导入其他模块。这种格式是 ECMAScript 6 中引入的模块语法,可以在支持 ES6 模块的环境中使用,例如 Node.js 12 及以上版本。
  3. eslint.config.cjs:
    • 这是一个 CommonJS 格式的 ESLint 配置文件,但是它使用 .cjs 扩展名来明确指示它是一个 CommonJS 模块。在一些特定的情况下,比如 Node.js 12 以下版本或者在一些遗留的项目中,你可能会选择使用 .cjs 扩展名来确保文件被正确地识别为 CommonJS 模块。