《Vite 基础知识》关于 .mjs .cjs 文件引出 NodeJS 对JS模块加载的思考(CommonJS 和 ESM)
    		       		warning:
    		            这篇文章距离上次修改已过446天,其中的内容可能已经有所变动。
    		        
        		                
                在 Node.js 中,有两种模块系统:CommonJS 和 ES Modules。.cjs 和 .mjs 分别是这两种模块系统的文件扩展名。
.cjs 文件使用 CommonJS 模块系统,该系统使用 require() 函数来导入模块。
.mjs 文件使用 ES Modules 系统,该系统使用 import 和 export 语句来导入和导出模块。
在 Node.js 中,默认情况下,如果文件扩展名为 .mjs,则该文件将使用 ES Modules,如果文件扩展名为 .cjs,则该文件将使用 CommonJS。
如果你想在 .cjs 文件中使用 ES Modules,或者在 .mjs 文件中使用 CommonJS,你可以在文件顶部添加特殊的注释行:
在 .cjs 文件中使用 ES Modules:
// @type {module}在 .mjs 文件中使用 CommonJS:
// @type {commonjs}这些注释行指示 Node.js 如何解析文件。
在实际开发中,通常推荐使用一致的模块系统。即在项目中要么全部使用 .mjs 文件和 ES Modules,要么全部使用 .cjs 文件和 CommonJS。这可以避免各种兼容性问题。
评论已关闭