使用cjs或mjs

使用cjs或mjs

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

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

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

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

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

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

  • CommonJS 模块是 Node.js 最初使用的模块系统,它使用 require() 和 module.exports 来导入和导出模块。Node.js 早期版本默认支持 CommonJS 模块,并且 .js 扩展名的文件被视为 CommonJS 模块。
  • ECMAScript 模块是 ECMAScript 6 中引入的模块系统,它使用 import 和 export 关键字来导入和导出模块。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 模块。