該規(guī)范的核心思想是允許模塊通過(guò) require 方法來(lái)同步加載所要依賴的其他模塊,然后通過(guò) exports 或 module.exports 來(lái)導(dǎo)出需要暴露的接口
require("module"); require("../file.js"); exports.doStuff = function() {}; module.exports = someValue;
優(yōu)點(diǎn):
服務(wù)器端模塊便于重用
NPM 中已經(jīng)有將近20萬(wàn)個(gè)可以使用模塊包
簡(jiǎn)單并容易使用
缺點(diǎn):
同步的模塊加載方式不適合在瀏覽器環(huán)境中,同步意味著阻塞加載,瀏覽器資源是異步加載的
不能非阻塞的并行加載多個(gè)模塊
實(shí)現(xiàn):
服務(wù)器端的 Node.js
Browserify,瀏覽器端的 CommonJS 實(shí)現(xiàn),可以使用 NPM 的模塊,但是編譯打包后的文件體積可能很大