تنظّم مشروع Node باستخدام package.json ووحدات ES وتبعيات npm والسكربتات.
افتح هذا الدرس في Kodokonلا يتّسع مشروع حقيقي في ملف واحد: بل تقسّمه إلى وحدات (modules)، وهي ملفات تصدّر (export) ما تقدّمه وتستورد (import) ما تحتاجه. أنت تعرف بالفعل صياغة import / export من مسار JavaScript؛ لنرَ كيف تتيحها Node. يبدأ كل شيء من package.json، بطاقة هوية مشروعك: وهو ملف بتنسيق JSON يصف اسمه ونسخته وإعداداته. ولإنشائه، انتقل إلى مجلد فارغ ونفّذ npm init -y (يقبل الخيار -y جميع الإجابات الافتراضية). ثم أضف السطر "type": "module": فهو يخبر Node بأن ملفات .js لديك تستخدم وحدات ES.
{
"name": "my-project",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node main.js",
"dev": "node --watch main.js"
}
}لننشئ ملفين في هذا المجلد: يصدّر math.js دالة، ويستوردها main.js. تفصيل خاص بـ Node: يجب أن يبدأ استيراد ملف محلي بـ ./ وأن ينتهي بالامتداد .js. وكلاهما مطلوب، على عكس ما تتسامح معه بعض أدوات الويب.
// math.js
export function add(a, b) {
return a + b;
}
// main.js
import { add } from "./math.js";
console.log(add(2, 3));تكمن قوة npm الكبرى في مكتبتها العالمية من الحزم (packages): كود كتبه آخرون، جاهز للاستخدام. ينزّل الأمر npm install حزمة إلى مجلد node_modules الخاص بمشروعك ويضيفها إلى قسم dependencies في package.json: وهو قائمة الحزم التي يحتاجها مشروعك ليعمل. ويسجّل ملف package-lock.json، المُنشأ تلقائيًا، النسخ المُثبَّتة بدقة، بحيث يحصل الجميع على الشيء نفسه. لنجرّب مع chalk، وهي حزمة تلوّن النص المعروض في الطرفية.
npm install chalkركيزة أخيرة: سكربتات npm، وهي اختصارات أوامر مُعلَنة في قسم scripts من package.json. ينفّذ npm run dev الأمر المحفوظ تحت الاسم dev، مهما طال الأمر الحقيقي. يستخدم سكربت dev لدينا node --watch، وهو خيار يعيد تشغيل البرنامج تلقائيًا في كل مرة يتغير فيها ملف: مريح جدًا أثناء التطوير.
npm run start
npm run dev