node.js 采用 commonjs 模塊化規(guī)范,定義了模塊、導(dǎo)出和加載的概念,簡化了模塊化 javascript 代碼的組織和重用,并幫助管理依賴關(guān)系。
Node.js 采用的模塊化規(guī)范
Node.js 采用 CommonJS 規(guī)范作為其模塊系統(tǒng)。CommonJS 是一個(gè)定義模塊化 JavaScript 代碼的標(biāo)準(zhǔn)集合,允許開發(fā)人員在不同的模塊之間共享代碼和功能。
CommonJS 規(guī)范
CommonJS 規(guī)范定義了以下幾個(gè)核心概念:
模塊: 一個(gè)獨(dú)立的 JavaScript 代碼單元,可以導(dǎo)出和導(dǎo)入其他模塊。
exports: 導(dǎo)出模塊中其他模塊可以訪問的變量、函數(shù)和類。
require: 加載并執(zhí)行其他模塊的函數(shù)。
在 Node.js 中使用 CommonJS
在 Node.js 中使用 CommonJS 模塊化非常簡單。要導(dǎo)出一個(gè)模塊,可以使用 module.exports
對象:
<code class="javascript">// module.js module.exports = { add: function(a, b) { return a + b; } };</code>
登錄后復(fù)制
要導(dǎo)入一個(gè)模塊,可以使用 require()
函數(shù):
<code class="javascript">// main.js var myModule = require('./module'); console.log(myModule.add(1, 2)); // 輸出 3</code>
登錄后復(fù)制
優(yōu)點(diǎn)
使用 CommonJS 模塊化規(guī)范的優(yōu)點(diǎn)包括:
模塊重用: 允許在不同模塊之間重用共享代碼。
代碼組織: 幫助組織大型代碼庫,使其更易于管理和維護(hù)。
依賴關(guān)系管理: 允許定義模塊之間的依賴關(guān)系,以便應(yīng)用程序可以正確運(yùn)行。
替代方案
雖然 CommonJS 是 Node.js 中默認(rèn)的模塊化規(guī)范,但也有一些替代方案可用,例如:
ES modules: JavaScript 中的原生模塊系統(tǒng),在 Node.js 12 中引入。
AMD (Asynchronous Module Definition):另一種模塊化規(guī)范,通常在 web 開發(fā)中使用。