CommonJS 里的 `module.exports` vs `exports`:为什么给后者重新赋值会失效?

技术讲座:CommonJS 中 module.exports 与 exports 的区别与使用 引言 CommonJS 是 Node.js 中使用的一种模块化规范,它允许开发者将代码分割成多个模块,方便管理和复用。在 CommonJS 中,module.exports 和 exports 是两个非常关键的属性,但它们的使用方式和作用域却有所不同。本文将深入探讨这两个属性的区别,并分析为什么给 exports 重新赋值会失效。 CommonJS 模块化简介 在 CommonJS 中,每个文件都是一个模块,通过 require 和 module.exports 实现模块的导入和导出。模块可以导出变量、函数、对象等,供其他模块使用。 // moduleA.js const a = 1; const b = 2; module.exports = { a, b }; // moduleB.js const { a, b } = require(‘./moduleA’); console.log(a, b); // 输出:1 2 module.exports 与 exports 的区别 modu …