Istilah CJS (CommonJS) dan MJS (Modul ES) merujuk kepada dua sistem modul yang digunakan dalam JavaScript untuk menyusun kod ke dalam komponen yang boleh digunakan semula . Berikut ialah perbandingan antara keduanya:
1. CommonJS (CJS)
-
Sintaks: Penggunaan CommonJS memerlukan() untuk memuatkan modul dan modul.eksport atau eksport untuk mengeksportnya.
-
Digunakan dalam: Ia adalah sistem modul yang digunakan terutamanya dalam Node.js sebelum pengenalan modul ES.
-
Pemuatan Segerak: Modul CommonJS dimuatkan segera, bermakna ia menyekat pelaksanaan sehingga modul dimuatkan. Ini sesuai untuk aplikasi sebelah pelayan tetapi kurang sesuai untuk kod sebelah klien yang lebih disukai memuatkan async.
-
Contoh:
// Import
const fs = require('fs');
// Export
module.exports = function () {
console.log("Hello from CJS");
};
Salin selepas log masuk
2. Modul ES (MJS)
-
Sintaks: Modul ES menggunakan pernyataan import dan eksport.
-
Digunakan dalam: Persekitaran JavaScript moden, kedua-duanya dalam penyemak imbas dan Node.js (dengan sambungan .mjs atau menggunakan "type": "modul" dalam package.json).
-
Pemuatan Asynchronous: Modul ES tak segerak dimuatkan, yang lebih sesuai untuk persekitaran sebelah pelanggan.
-
Contoh:
// Import
import fs from 'fs';
// Export
export function greet() {
console.log("Hello from MJS");
}
Salin selepas log masuk
Perbezaan Utama:
-
Mekanisme Pemuatan:
-
CJS: Modul dimuatkan secara serentak.
-
MJS: Modul dimuatkan secara tidak segerak, yang menjadikannya tidak menyekat dan lebih cekap dalam senario tertentu (terutamanya dalam penyemak imbas).
-
Sintaks:
-
CJS: Penggunaan require() dan module.exports.
-
MJS: Menggunakan import dan eksport.
-
Keserasian:
-
CJS: Disokong secara meluas dalam Node.js, tetapi kurang serasi dengan penyemak imbas (tanpa pengikat).
-
MJS: Sokongan asli dalam penyemak imbas moden dan Node.js (dari versi 12+), sejajar dengan standard modul ES6.
-
Eksport Lalai:
-
CJS: Boleh mengeksport objek atau fungsi secara langsung sebagai modul.
-
MJS: Menyokong kedua-dua eksport bernama dan lalai, membolehkan lebih fleksibiliti dalam mengeksport berbilang fungsi atau nilai.
Bila hendak digunakan:
-
CJS (CommonJS): Jika bekerja dengan projek Node.js lama atau perpustakaan sedia ada yang berdasarkan sistem modul CommonJS.
-
MJS (Modul ES): Apabila membina aplikasi moden, terutamanya untuk pembangunan sisi klien atau projek Node.js yang menyasarkan masa jalan moden.
Dalam pembangunan moden, Modul ES menjadi standard, tetapi banyak projek warisan masih bergantung pada CommonJS.
Atas ialah kandungan terperinci Mari fahami perbezaan antara CJS & MJS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!