package.json والسكربتات وdeps مقابل devDeps
افهموا حقول package.json، وعرّفوا سكربتات بسيطة، واعرفوا الفرق بين dependencies وdevDependencies
package.json والسكربتات وdeps مقابل devDeps درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
لماذا package.json؟
الهدف: قراءة package.json واستخدامه.
- الحقول الأساسية: name وversion وtype
- scripts: تشغيل أوامر قصيرة
- dependencies مقابل devDependencies
- الإصدارات الدلالية، caret/tilde، في لمحة للمبتدئين

نظرة سريعة على الحقول
يُعدّ package.json ملف بيان يحتوي على معلومات المشروع والبرامج النصية وقوائم التبعيات.
// Emulate a minimal package.json as a JS object
const pkg = {
name: "hello-app",
version: "1.0.0",
type: "module",
scripts: {
start: "node index.js",
build: "echo building...",
test: "echo tests..."
},
dependencies: {
"chalk": "^5.3.0"
},
devDependencies: {
"eslint": "^9.0.0"
}
};
console.log("name:", pkg.name);
console.log("version:", pkg.version);
console.log("type:", pkg.type);
console.log("scripts:", Object.keys(pkg.scripts));

البرامج النصية حسب الاسم
أضف الأوامر ضمن scripts، مثل build وtest، ثم شغّلها باستخدام مدير الحزم.
// Tiny emulator for "npm run <name>"
function runScript(name) {
const cmd = pkg.scripts[name];
if (!cmd) {
console.log("no such script:", name);
return;
}
console.log("running:", name, "->", cmd);
}
runScript("build");
runScript("test");
runScript("missing");

أين يوضع كل شيء؟
تحتاج التطبيقات إلى dependencies عند التشغيل، أما devDependencies فهي أدوات مخصصة للتطوير فقط.
// List production deps vs development-time tools
function listDeps() {
console.log("deps:", Object.keys(pkg.dependencies));
console.log("devDeps:", Object.keys(pkg.devDependencies));
}
// Rule of thumb in comments:
// dependencies -> needed at runtime (your app uses them when running)
// devDependencies -> only for development (lint, test, build tools)
listDeps();

أساسيات Semver
تعبّر نطاقات Semver عن التحديثات المسموح بها: caret لتحديثات minor وpatch، وtilde لتحديثات patch، أو إصدار دقيق.
// Semantic version ranges (intent only)
// ^1.2.3 -> allow minor/patch updates (1.x compatible)
// ~1.2.3 -> allow patch updates (1.2.x)
// 1.2.3 -> exact version
const ranges = ["^1.2.3", "~1.2.3", "1.2.3"];
for (const r of ranges) {
console.log("range:", r);
}

ملاحظات عملية
نصائح:
- أبقِ البرامج النصية قصيرة وواضحة، مثل build وtest.
- مكتبات وقت التشغيل ← dependencies؛ وأدوات التطوير ← devDependencies.
- ابدأ بنطاقات ^، ثم ثبّت الإصدارات الدقيقة لاحقًا عند الحاجة.

اختبار حقل scripts
تحقّق سريع: أين توجد الأوامر؟

مراجعة
مراجعة: يسرد package.json معلومات المشروع وscripts لتشغيل المهام، ويفصل بين dependencies الخاصة بوقت التشغيل وdevDependencies الخاصة بأدوات التطوير. استخدم نطاقات Semver بسيطة للبقاء محدّثًا.

الأسئلة الشائعة
هل درس «package.json والسكربتات وdeps مقابل devDeps» مجاني؟
نعم — نص درس «package.json والسكربتات وdeps مقابل devDeps» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «package.json والسكربتات وdeps مقابل devDeps»؟
افهموا حقول package.json، وعرّفوا سكربتات بسيطة، واعرفوا الفرق بين dependencies وdevDependencies تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «package.json والسكربتات وdeps مقابل devDeps»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- package.json والسكربتات وdeps مقابل devDeps
- npx ونطاقات الإصدارات الدلالية
- الأدوات المحلية مقابل العالمية وbins وسير العمل الملائم للفريق