新聞中心
Node兩種模塊規(guī)范:CJS 與 ESM

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了大峪免費(fèi)建站歡迎大家使用!
Node.js 提供了兩種模塊系統(tǒng):CommonJS(CJS)和 ECMAScript 模塊(ESM),這兩種模塊規(guī)范在語法、加載方式和使用場景上有一些不同。
CommonJS(CJS)
CommonJS 是一種服務(wù)器端模塊的規(guī)范,被廣泛用于 Node.js,它的主要特性如下:
使用 require 函數(shù)來導(dǎo)入模塊。
使用 module.exports 或 exports 來導(dǎo)出模塊。
模塊加載是同步的,即阻塞式的。
適用于 Node.js 環(huán)境。
下面是一個簡單的 CJS 示例:
// 導(dǎo)入模塊
const math = require('mathmodule');
// 使用模塊
console.log(math.add(1, 2));
ECMAScript 模塊(ESM)
ECMAScript 模塊是一種新的 JavaScript 模塊系統(tǒng),遵循 ES6 標(biāo)準(zhǔn),它的主要特性如下:
使用 import 語句來導(dǎo)入模塊。
使用 export 語句來導(dǎo)出模塊。
支持異步加載,即非阻塞式的。
適用于現(xiàn)代瀏覽器和 Node.js 環(huán)境。
下面是一個簡單的 ESM 示例:
// 導(dǎo)入模塊
import { add } from './mathmodule.js';
// 使用模塊
console.log(add(1, 2));
CJS 與 ESM 的不同點(diǎn)
下面是一個表格,歸納了 CJS 和 ESM 之間的主要區(qū)別:
| 特性 | CommonJS(CJS) | ECMAScript 模塊(ESM) |
| 導(dǎo)入方式 | require 函數(shù) | import 語句 |
| 導(dǎo)出方式 | module.exports 或 exports | export 語句 |
| 加載方式 | 同步(阻塞式) | 異步(非阻塞式) |
| 使用場景 | 主要用于 Node.js 環(huán)境 | 適用于現(xiàn)代瀏覽器和 Node.js 環(huán)境 |
| 代碼示例 | const math = require('mathmodule'); | import { add } from './mathmodule.js'; |
上文歸納
CommonJS(CJS)和 ECMAScript 模塊(ESM)是 Node.js 提供的兩種不同的模塊系統(tǒng),CJS 適用于 Node.js 環(huán)境,而 ESM 更適用于現(xiàn)代瀏覽器和 Node.js 環(huán)境,在選擇使用哪種模塊規(guī)范時,需要根據(jù)項(xiàng)目的需求和目標(biāo)環(huán)境來決定。
分享標(biāo)題:聊聊Node兩種模塊規(guī)范:CJS與ESM,有什么不同點(diǎn)?
本文地址:http://m.5511xx.com/article/cciosgo.html


咨詢
建站咨詢
