نظاما وحدات في Node
يدعم Node طريقتين لتقسيم الكود إلى ملفات (وحدات):
- CommonJS — النظام التقليدي (
require/module.exports). - ES Modules — المعيار الحديث (
import/export).
CommonJS
ملف math.js:
function add(a, b) {
return a + b;
}
module.exports = { add };
استيراده:
const { add } = require("./math");
console.log(add(2, 3)); // 5
ES Modules
ملف math.mjs (أو مع "type": "module" في package.json):
export function add(a, b) {
return a + b;
}
export default function multiply(a, b) {
return a * b;
}
استيراده:
import multiply, { add } from "./math.js";
console.log(add(2, 3)); // 5
console.log(multiply(2, 3)); // 6
كيف تفعّل ES Modules؟
إحدى طريقتين:
- امتداد الملف
.mjs. - أضف في
package.json:
{
"type": "module"
}
مقارنة سريعة
| CommonJS | ES Modules | |
|---|---|---|
| الاستيراد | require() | import |
| التصدير | module.exports | export |
| التحميل | متزامن | غير متزامن |
| الافتراضي | الأقدم | الموصى به حديثًا |
💡 المشاريع الحديثة تتّجه إلى ES Modules — وهو نفس نظام المتصفّح، ما يوحّد الخبرة بين الواجهة والخلفية.
أخطاء شائعة
- خلط
requireوimportفي نفس الملف. - نسيان امتداد
.jsفي مسارات الاستيراد عند ES Modules.
🎯 التالي: npm وملف package.json بعمق.