منصة Zezo AI — تفاصيل Node.js

📊 2 مشاهدة

منصة Zezo AI — تفاصيل Node.js

بناءً على المعلومات التي قدمتها، إليك ملخص منظم لتفاصيل دعم Node.js في منصة Zezo AI:

أولا تحويله الى
ملفاً تقنياً خاماً
تحليل بنية الملف (Structure): كيف بُني المحتوى وكيف يتدرّج.
تحليل المحتوى التقني (Content): ماذا يقول كل جزء، مع الشرح والتفسير.

تحليل السياق (Context): كيف تترابط الأجزاء وكيف تُبنى “قصة” القرار التقني.
إعادة بناء التكوين الكامل (Reconstruction): تجميع كل التكوينات المبعثرة في الملف في حزمة واحدة متماسكة، مع شرح دور كل ملف.

🟢 إصدارات Node.js المدعومة

  • 24.x
  • 22.x
  • 20.x
  • 18.x

📦 مدراء الحزم المدعومون

المديرالحالة
npm✅ افتراضي
yarn✅ مدعوم
pnpm✅ مدعوم

🎨 قوالب الواجهة الأمامية المدعومة

Angular · Astro · Gatsby · Next.js · Nitro · Nuxt · Parcel · React · React Router · Svelte · SvelteKit · Vite · Vue.js

⚙️ أطر العمل الخلفية المدعومة

Astro · Express · Fastify · Hono · NestJS · Next.js · Nitro · Nuxt · React Router · SvelteKit


ملاحظات سريعة

  • المنصة تغطي طيفاً واسعاً من الأطر المتكاملة (Full-stack) مثل Next.js وNuxt وSvelteKit وAstro، إضافة إلى أطر خلفية متخصصة مثل Express وFastify وHono وNestJS.
  • دعم Node.js 18.x يعني توافقاً مع الإصدارات الأقدم (LTS سابقاً)، بينما 24.x يمثل أحدث الإصدارات — مما يمنح مرونة في اختيار بيئة التشغيل المناسبة لمشروعك.
  • npm هو المدير الافتراضي، مع دعم كامل لـ yarn وpnpm لمن يفضل سرعة أو إدارة أفضل للحزم.

هل تريد تفاصيل إضافية حول إعداد مشروع معين على Zezo AI، أو مقارنة بين الأطر المدعومة؟

منصة Zezo AI — تفاصيل إضافية حول Node.js

إليك توسّعاً في التفاصيل التي ذكرتها، مع شرح عملي لكل جزء:


🟢 إصدارات Node.js — ماذا يعني كل إصدار؟

الإصدارالحالةالاستخدام المناسب
24.xأحدث إصدار (Current)مشاريع جديدة تحتاج أحدث الميزات والأداء
22.xLTS حديثتوازن ممتاز بين الاستقرار والحداثة — الخيار الموصى به لمعظم المشاريع
20.xLTS مستقرمشاريع إنتاجية تحتاج أقصى استقرار
18.xLTS أقدم (يقترب من نهاية الدعم)مشاريع قديمة تحتاج توافقاً مع كود قديم

💡 نصيحة: إذا كنت تبدأ مشروعاً جديداً، اختر 22.x أو 24.x. أما إذا كان مشروعك يعتمد على حزم قديمة، فقد تحتاج 18.x أو 20.x.


📦 مدراء الحزم — الفروق العملية

npm (الافتراضي)

  • يأتي مدمجاً مع Node.js — لا يحتاج تثبيتاً.
  • ملف القفل: package-lock.json
  • الأكثر شيوعاً وتوافقاً.

yarn

  • سرعة أعلى في التثبيت (خاصة مع Yarn Berry).
  • ملف القفل: yarn.lock
  • ممتاز للمشاريع الكبيرة (Workspaces).

pnpm

  • الأسرع والأكثر كفاءة في استخدام القرص (يستخدم روابط صلبة Hard Links).
  • ملف القفل: pnpm-lock.yaml
  • مثالي عند العمل على مشاريع متعددة تشترك في الحزم.

⚠️ تنبيه: لا تخلط بين مدراء الحزم في نفس المشروع — اختر واحداً والتزم به، لأن ملفات القفل مختلفة.


🎨 قوالب الواجهة الأمامية — تصنيف وظيفي

أطر عمل UI (مكتبات مكوّنات)

  • React — الأشهر، مرن جداً.
  • Vue.js — تعلّم سهل، تكامل ممتاز.
  • Svelte — يُترجم وقت البناء، أداء عالٍ.
  • Angular — إطار متكامل للمشاريع الضخمة.

أطر Meta-frameworks (Full-stack)

  • Next.js — React + SSR/SSG + API Routes.
  • Nuxt — Vue + SSR + Server Routes.
  • SvelteKit — Svelte + Routing + SSR.
  • Astro — محتوى أولاً، مكوّنات جزيرية (Islands).
  • React Router — Routing متقدم لتطبيقات React.

أدوات بناء وSSG

  • Vite — أداة بناء فائقة السرعة.
  • Gatsby — SSG قائم على React (مناسب للمدونات).
  • Parcel — بناء بدون إعداد (Zero-config).
  • Nitro — محرك خادم عالمي (يعمل خلف Nuxt/Astro).

⚙️ أطر العمل الخلفية — تصنيف وظيفي

أطر متكاملة (Full-stack)

  • Next.js — API Routes + Server Actions.
  • Nuxt — Server Routes (Nitro).
  • Astro — Endpoints + Server Islands.
  • SvelteKit — +server.js endpoints.
  • React Router — Loaders/Actions (Framework Mode).
  • Nitro — طبقة الخادم الموحدة.

أطر خلفية متخصصة

الإطارالمميز
Expressالأقدم والأشهر — مرونة كاملة
Fastifyأداء عالٍ + Schema Validation مدمج
Honoخفيف جداً — يعمل على Edge/Workers
NestJSمعماري (Modules/DI) — مناسب للمشاريع الكبيرة

🔄 مصفوفة التوافق العملية (أمثلة)

المشروعFrameworkPackage ManagerNode
تطبيق ويب متكاملNext.jspnpm22.x
موقع محتوىAstronpm22.x
API سريعFastify / Honopnpm24.x
تطبيق مؤسسيNestJS + Angularyarn20.x
متجر إلكترونيNuxtnpm22.x

🧩 ملاحظات تقنية مهمة

  1. Nitro يدعم كلاً من الواجهة والخلفية — لأنه محرك خادم يعمل خلف Nuxt وAstro وغيرها.
  2. Next.js / Nuxt / SvelteKit / Astro تظهر في القائمتين لأنها توفر API Routes داخلياً، فلا تحتاج إطار خلفية منفصل.
  3. React Router (الإصدار 7+) أصبح إطاراً متكاملاً وليس مجرد مكتبة توجيه.
  4. Hono مثالي إذا كنت تخطط للنشر على Edge Functions أو Cloudflare Workers.
  5. npm كافتراضي يعني أن المنصة ستولّد package-lock.json تلقائياً ما لم تختر غير ذلك.

✅ توصيات عملية

  • للمبتدئين: React + Vite + npm + Node 22.x.
  • لمشروع إنتاجي متكامل: Next.js + pnpm + Node 22.x.
  • لأداء أقصى في API: Hono أو Fastify + pnpm + Node 24.x.
  • لمشروع مؤسسي كبير: NestJS (خلفية) + Angular أو React (واجهة) + yarn + Node 20.x.

هل تريد أن أشرح خطوات إنشاء مشروع محدد على Zezo AI (مثل Next.js أو NestJS)، أو مقارنة تفصيلية بين إطارين (مثلاً Fastify vs Hono، أو Next.js vs Nuxt)؟

منصة Zezo AI — دليل موسّع حول Node.js (الجزء الثالث)

نكمل التعمّق. هذه المرة سنركز على الجوانب العملية والتقنية الدقيقة التي تهمك عند بناء مشروع فعلي على المنصة.


🧠 1. كيف تختار إصدار Node.js المناسب؟ (شجرة قرار)

text

هل تبدأ مشروعاً جديداً؟
├── نعم → هل تحتاج أحدث ميزات (مثل TypeScript الأصلي، WebSocket محسّن)؟
│         ├── نعم → Node 24.x
│         └── لا  → Node 22.x ✅ (الأفضل توازناً)
└── لا (مشروع قائم)
          ├── هل يعمل على 18.x حالياً؟ → ابقَ على 18.x ثم خطّط للترقية
          ├── هل يستخدم حزماً قديمة (native modules)؟ → 20.x
          └── هل الكود حديث ومتوافق؟ → 22.x أو 24.x

فروق تقنية بين الإصدارات

الميزة18.x20.x22.x24.x
fetch مدمج✅✅✅✅
node:test (Test Runner)✅✅✅✅
دعم --watch مستقر⚠️✅✅✅
require(ESM)❌⚠️✅✅
TypeScript native (strip types)❌❌⚠️✅
أداء V8 محسّنأساسيجيدأفضلالأفضل

💡 قاعدة ذهبية: استخدم LTS دائماً في الإنتاج. الإصدارات الفردية (odd) مثل 23.x و25.x تجريبية — تجنّبها في الإنتاج.


📦 2. مدراء الحزم — مقارنة تقنية معمّقة

المعيارnpmyarn (Berry)pnpm
السرعة (تثبيت بارد)متوسطسريعالأسرع
استهلاك القرصعالٍمتوسطالأقل (Hard Links)
ملف القفلpackage-lock.jsonyarn.lockpnpm-lock.yaml
Workspaces✅✅ (ممتاز)✅ (ممتاز)
Strictness (منع الوصول لحزم غير معلنة)❌⚠️✅ (الافتراضي)
التوافق مع Native Modules✅✅✅ (يحتاج node-linker)
دعم Monorepoجيدممتازممتاز

متى تختار كل واحد؟

  • npm → بساطة، توافق مضمون، مشاريع صغيرة/متوسطة.
  • yarn → Monorepo كبير، فريق يستخدم Yarn Plug’n’Play.
  • pnpm → مشاريع متعددة، CI/CD سريع، توفير مساحة.

أوامر مكافئة سريعة

المهمةnpmyarnpnpm
تثبيتnpm installyarnpnpm install
إضافة حزمةnpm i pkgyarn add pkgpnpm add pkg
إضافة devnpm i -D pkgyarn add -D pkgpnpm add -D pkg
تشغيل سكربتnpm run devyarn devpnpm dev
حذفnpm rm pkgyarn remove pkgpnpm remove pkg

🎨 3. قوالب الواجهة الأمامية — تفصيل أعمق

أ) مكتبات UI الأساسية

الإطاراللغةالحجممنحنى التعلّمالأنسب لـ
ReactJSX/TSXمتوسطمتوسطتطبيقات ديناميكية، سوق عمل ضخم
Vue.jsSFCخفيفسهلفرق صغيرة، تطبيقات تدريجية
Svelte.svelteخفيف جداًسهلأداء عالٍ، كود أقل
AngularTSثقيلصعبمؤسسات، فرق كبيرة، بنية صارمة

ب) Meta-frameworks (Full-stack)

الإطارالأساسRenderingالأنسب لـ
Next.jsReactSSR/SSG/ISR/RSCتطبيقات ويب متكاملة، تجارة إلكترونية
NuxtVueSSR/SSG/ISRمشاريع Vue إنتاجية
SvelteKitSvelteSSR/SSGأداء + بساطة
AstroمتعددSSG/SSR + Islandsمواقع محتوى، مدونات، تسويق
React Router 7ReactSSR/SPAتطبيقات React مع تحكم كامل بالتوجيه
GatsbyReactSSGمدونات قديمة (تراجع شعبيته)

ج) أدوات البناء

  • Vite → الأسرع، بديل Webpack، يدعم كل الأطر.
  • Parcel → Zero-config، مناسب للمبتدئين.
  • Nitro → محرك خادم يعمل خلف Nuxt/Astro (وليس أداة واجهة بالمعنى التقليدي، لكنه يظهر في القائمة لأنه يولّد ناتج النشر).

د) متى تختار ماذا؟ (أمثلة واقعية)

  • مدونة/موقع محتوى → Astro + npm
  • متجر إلكتروني → Next.js + pnpm
  • لوحة تحكم (Dashboard) → React + Vite + pnpm
  • تطبيق SaaS متكامل → Next.js أو Nuxt
  • موقع شركة بسيط → Astro أو SvelteKit

⚙️ 4. الأطر الخلفية — تفصيل أعمق

مقارنة تقنية

الإطارالأداءالبنيةTypeScriptالأنسب لـ
Expressمتوسطمرن جداًجيدAPIs تقليدية، توافق واسع
Fastifyعالٍ جداًSchema-basedممتازAPIs عالية الأداء
Honoعالٍ جداًخفيفممتازEdge/Serverless
NestJSمتوسطModular + DIممتازمؤسسات، تطبيقات كبيرة

ملاحظات تقنية لكل إطار

Express

  • الأقدم والأكثر حزماً (middleware ecosystem ضخم).
  • لا يوفر بنية صارمة → حرية كاملة لكن مسؤولية أكبر.
  • مناسب للمشاريع الصغيرة والمتوسطة.

Fastify

  • أسرع من Express بـ 2-3 أضعاف في المعايير القياسية.
  • Schema Validation مدمج (JSON Schema) → أمان أعلى.
  • Plugin system قوي.

Hono

  • يعمل على Node, Deno, Bun, Cloudflare Workers, AWS Lambda.
  • حجم صغير جداً (< 20KB).
  • مثالي إذا كنت تخطط للنشر على Edge.

NestJS

  • يشبه Angular في فلسفته (Modules, Decorators, DI).
  • مناسب للفرق الكبيرة التي تحتاج بنية صارمة.
  • منحنى تعلّم أعلى لكن قابلية صيانة ممتازة.

أطر Full-stack المزدوجة (واجهة + خلفية)

هذه تظهر في القائمتين لأنها توفر:

  • Next.js → API Routes + Server Actions + Route Handlers.
  • Nuxt → Server Routes عبر Nitro.
  • SvelteKit → +server.js endpoints.
  • Astro → API Endpoints + Server Islands.
  • React Router 7 → Loaders/Actions.
  • Nitro → طبقة الخادم المشتركة.

💡 إذا اخترت إطاراً متكاملاً، لن تحتاج إطار خلفية منفصلاً إلا إذا كان لديك متطلبات خاصة (مثل WebSocket مكثف، معالجة مهام طويلة، microservices).


🔄 5. مصفوفة توافق عملية (سيناريوهات)

السيناريوالواجهةالخلفيةمدير الحزمNode
موقع محتوىAstro—npm22.x
متجر إلكترونيNext.jsNext.js APIpnpm22.x
لوحة تحكم + APIReact + ViteFastifypnpm24.x
SaaS متكاملNuxtNuxt Serverpnpm22.x
تطبيق مؤسسيAngularNestJSyarn20.x
API خفيف على Edge—Honopnpm24.x
مدونة بسيطةSvelteKitSvelteKitnpm22.x
Monorepo كبيرReactExpresspnpm22.x

🛠️ 6. نصائح عملية للبناء على Zezo AI

أ) هيكل مشروع نموذجي (Monorepo مع pnpm)

text

my-project/
├── apps/
│   ├── web/          (Next.js)
│   └── api/          (Fastify)
├── packages/
│   └── shared/       (أنواع مشتركة)
├── pnpm-workspace.yaml
└── package.json

ب) ملف .nvmrc لتثبيت إصدار Node

text

22

يضمن أن الفريق كله يستخدم نفس الإصدار.

ج) تحديد مدير الحزم في package.json

json

{
  "packageManager": "pnpm@9.0.0",
  "engines": {
    "node": ">=22.0.0 <25.0.0"
  }
}

يمنع استخدام مدير حزم خاطئ ويحدد نطاق Node المدعوم.

د) سكربتات موحّدة

json

{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "start": "node dist/server.js",
    "test": "node --test"
  }
}

⚠️ 7. أخطاء شائعة يجب تجنّبها

  1. خلط مدراء الحزم → حذف node_modules وملفات القفل والبدء من جديد.
  2. استخدام إصدار Node فردي (23.x/25.x) في الإنتاج → غير مستقر.
  3. تجاهل engines → قد يعمل المشروع محلياً ويفشل على المنصة.
  4. عدم تثبيت الإصدارات (lockfile) → بناء غير قابل للتكرار.
  5. استخدام إطار خلفية منفصل مع Next.js/Nuxt دون داعٍ → تعقيد زائد.
  6. اختيار Angular لمشروع صغير → عبء غير مبرر.
  7. اختيار Hono ثم النشر على Node فقط → يفقد ميزته الأساسية (Edge).

✅ 8. خلاصة التوصيات النهائية

الحالةالتوصية
مشروع جديد عامNode 22.x + pnpm + Next.js أو Astro
أداء API أقصىNode 24.x + pnpm + Fastify/Hono
مشروع مؤسسيNode 20.x + yarn + NestJS + Angular/React
موقع محتوىNode 22.x + npm + Astro
MonorepoNode 22.x + pnpm + Workspaces
نشر EdgeNode 24.x + pnpm + Hono

هل تريد الآن:

  1. خطوات إنشاء مشروع فعلي على Zezo AI (مثل Next.js أو NestJS) خطوة بخطوة؟
  2. مقارنة تفصيلية بين إطارين (Fastify vs Hono، أو Next.js vs Nuxt)؟
  3. دليل إعداد Monorepo كامل مع pnpm؟
  4. شرح النشر (Deployment) وخيارات البيئة على المنصة؟

اختر ما يناسبك وسأعمّق فيه.

منصة Zezo AI — الدليل الموسّع (الجزء الرابع): من الإعداد إلى النشر

نكمل التعمّق. هذه المرة ننتقل من المعرفة النظرية إلى التطبيق العملي الكامل: إعداد المشروع، البنية، النشر، والأداء.


🏗️ 1. خطوات إنشاء مشروع على Zezo AI (دليل عام)

أ) المسار الأساسي

text

1. اختر نوع المشروع (Frontend / Backend / Full-stack)
2. اختر القالب (Next.js / Astro / Fastify / ...)
3. اختر إصدار Node.js (22.x موصى به)
4. اختر مدير الحزم (npm افتراضي / yarn / pnpm)
5. حدّد اسم المشروع والمستودع
6. اضغط إنشاء → تتولّد البنية تلقائياً
7. ابدأ التطوير

ب) ما الذي يجب التحقق منه بعد الإنشاء؟

  • ✅ ملف package.json يحتوي engines.node الصحيح.
  • ✅ ملف القفل (package-lock.json / yarn.lock / pnpm-lock.yaml) موجود.
  • ✅ ملف .nvmrc أو .node-version يطابق الإصدار المختار.
  • ✅ سكربتات dev / build / start تعمل.
  • ✅ متغيرات البيئة موثّقة في .env.example.

📁 2. بنية مشروع نموذجية لكل نوع

أ) مشروع Next.js (Full-stack)

text

my-next-app/
├── app/
│   ├── layout.tsx
│   ├── page.tsx
│   ├── api/
│   │   └── health/route.ts
│   └── (dashboard)/
│       └── page.tsx
├── components/
├── lib/
├── public/
├── next.config.js
├── package.json
├── tsconfig.json
└── .env.example

ب) مشروع Astro (محتوى)

text

my-astro-site/
├── src/
│   ├── pages/
│   │   ├── index.astro
│   │   └── api/health.ts
│   ├── components/
│   ├── layouts/
│   └── content/
├── public/
├── astro.config.mjs
└── package.json

ج) مشروع Fastify (API)

text

my-fastify-api/
├── src/
│   ├── server.ts
│   ├── routes/
│   │   └── health.ts
│   ├── plugins/
│   └── schemas/
├── test/
├── package.json
├── tsconfig.json
└── .env.example

د) Monorepo (pnpm Workspaces)

text

my-monorepo/
├── apps/
│   ├── web/          → Next.js
│   └── api/          → Fastify
├── packages/
│   ├── ui/           → مكوّنات مشتركة
│   ├── config/       → إعدادات مشتركة
│   └── types/        → أنواع TypeScript
├── pnpm-workspace.yaml
├── package.json
└── turbo.json        (اختياري)

pnpm-workspace.yaml:

yaml

packages:
  - "apps/*"
  - "packages/*"

⚙️ 3. إعدادات حرجة يجب ضبطها

أ) package.json الاحترافي

json

{
  "name": "my-app",
  "version": "1.0.0",
  "private": true,
  "packageManager": "pnpm@9.12.0",
  "engines": {
    "node": ">=22.0.0 <25.0.0",
    "pnpm": ">=9.0.0"
  },
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "test": "node --test"
  }
}

ب) متغيرات البيئة (.env.example)

bash

# Server
NODE_ENV=development
PORT=3000
HOST=0.0.0.0

# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/db

# Auth
JWT_SECRET=change-me
SESSION_SECRET=change-me-too

# Public (تُكشف للعميل)
NEXT_PUBLIC_API_URL=http://localhost:3000/api

⚠️ قاعدة: أي متغير يبدأ بـ NEXT_PUBLIC_ أو VITE_ أو PUBLIC_ سيُكشف للعميل — لا تضع فيه أسراراً.

ج) ملف .nvmrc

text

22

د) ملف .gitignore أساسي

text

node_modules/
.next/
dist/
build/
.env
.env.local
*.log
.DS_Store

🚀 4. النشر (Deployment) — ما تحتاج معرفته

أ) مراحل البناء على المنصة

text

1. سحب الكود (Git clone)
2. تثبيت Node.js بالإصدار المختار
3. تثبيت الحزم بمدير الحزم المحدد
4. تشغيل سكربت build
5. تشغيل سكربت start (أو serve)
6. توجيه المنفذ (PORT) إلى الخادم

ب) الفروق بين أنواع النشر

النوعالسكربت المطلوبالناتجمثال
SSR (Next.js/Nuxt)build + startخادم Node دائمNext.js standalone
SSG (Astro/Gatsby)build فقطملفات ثابتةdist/
API (Fastify/Hono)build + startخادم Nodedist/server.js
SPA (Vite/React)build فقطملفات ثابتةdist/
Edge (Hono)buildWorkerCloudflare Worker

ج) إعداد Next.js للنشر المستقل (Standalone)

js

// next.config.js
module.exports = {
  output: 'standalone',
};

يقلّل حجم الناتج ويسرّع النشر — مثالي للحاويات (Containers).

د) إعداد Fastify للاستماع الصحيح

ts

// src/server.ts
import Fastify from 'fastify';

const app = Fastify({ logger: true });

app.get('/health', async () => ({ status: 'ok' }));

const port = Number(process.env.PORT) || 3000;
const host = process.env.HOST || '0.0.0.0'; // ⚠️ مهم للحاويات

await app.listen({ port, host });

⚠️ خطأ شائع: استخدام localhost بدلاً من 0.0.0.0 → الخادم يعمل لكن غير قابل للوصول من خارج الحاوية.


📊 5. الأداء والتحسين

أ) مقاييس أساسية يجب مراقبتها

المقياسالأداةالهدف
زمن الاستجابة (Latency)Fastify logger / APM< 200ms
الطلبات/الثانية (RPS)Benchmarkحسب الحمل
استهلاك الذاكرةprocess.memoryUsage()مستقر
زمن البناءCI logs< 5 دقائق
حجم الحزمةvite-bundle-visualizerأقل ما يمكن

ب) تحسينات سريعة

  • Code Splitting (تلقائي في Vite/Next.js).
  • ضغط الاستجابات (@fastify/compress أو ضغط على مستوى المنصة).
  • Caching للاستجابات الثابتة (Cache-Control).
  • Connection Pooling لقواعد البيانات.
  • Lazy Loading للمكوّنات الثقيلة.

ج) مثال ضغط في Fastify

ts

import compress from '@fastify/compress';
await app.register(compress, { global: true });

🔐 6. الأمان — قائمة تحقق

  • ✅ لا تضع أسراراً في الكود أو NEXT_PUBLIC_*.
  • ✅ استخدم helmet (Express/Fastify) لرؤوس الأمان.
  • ✅ فعّل CORS بشكل صريح (لا * في الإنتاج).
  • ✅ تحقّق من المدخلات (Zod / JSON Schema).
  • ✅ استخدم Rate Limiting (@fastify/rate-limit).
  • ✅ حدّث الحزم دورياً (npm audit / pnpm audit).
  • ✅ استخدم HTTPS دائماً.
  • ✅ ثبّت الإصدارات (lockfile) لمنع هجمات Supply Chain.

مثال CORS آمن في Fastify

ts

import cors from '@fastify/cors';
await app.register(cors, {
  origin: ['https://myapp.com'],
  methods: ['GET', 'POST'],
});

🧪 7. الاختبار (Testing)

أ) Test Runner المدمج في Node

ts

// test/health.test.ts
import { test } from 'node:test';
import assert from 'node:assert';

test('health returns ok', async () => {
  const res = await fetch('http://localhost:3000/health');
  const body = await res.json();
  assert.strictEqual(body.status, 'ok');
});

تشغيل: node --test

ب) أدوات شائعة

الأداةالنوع
node --testمدمج، سريع
Vitestوحدات + تكامل (Vite)
Jestوحدات (تقليدي)
PlaywrightE2E
CypressE2E

🔄 8. CI/CD — نموذج عملي

أ) سكربت GitHub Actions مبسّط

yaml

name: CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
        with: { version: 9 }
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: 'pnpm'
      - run: pnpm install --frozen-lockfile
      - run: pnpm lint
      - run: pnpm test
      - run: pnpm build

💡 --frozen-lockfile يضمن أن البناء يستخدم نفس الإصدارات تماماً.


🧭 9. مصفوفة قرار نهائية (شاملة)

إذا كنت…اختر
مبتدئاًReact + Vite + npm + Node 22.x
تبني موقع محتوىAstro + npm + Node 22.x
تبني متجراًNext.js + pnpm + Node 22.x
تبني API عالي الأداءFastify + pnpm + Node 24.x
تخطط للنشر على EdgeHono + pnpm + Node 24.x
تبني نظاماً مؤسسياًNestJS + Angular/React + yarn + Node 20.x
تعمل في فريق كبيرMonorepo + pnpm + Turbo
تحتاج أقصى استقرارNode 20.x LTS + npm

🎯 10. خلاصة القواعد الذهبية

  1. LTS دائماً في الإنتاج (20.x أو 22.x).
  2. مدير حزم واحد لكل مشروع — لا تخلط.
  3. ثبّت الإصدارات (lockfile + engines + packageManager).
  4. 0.0.0.0 وليس localhost للاستماع في الحاويات.
  5. لا أسرار في الكود — استخدم متغيرات البيئة.
  6. إطار متكامل يكفي — لا تضف خلفية منفصلة بلا داعٍ.
  7. اختبر قبل النشر — node --test على الأقل.
  8. راقب الأداء — السجلات والقياسات أساس التحسين.

هل تريد الآن أن أتعمّق في أحد المسارات التالية؟

  1. دليل خطوة بخطوة لإنشاء مشروع Next.js كامل على Zezo AI (من الصفر إلى النشر).
  2. دليل Monorepo كامل مع pnpm + Turbo (واجهة + خلفية + حزم مشتركة).
  3. مقارنة معيارية (Benchmark) بين Fastify وHono وExpress بالأرقام.
  4. دليل النشر المتقدم (Docker، متغيرات البيئة، النطاقات، HTTPS).
  5. دليل الأمان المتقدم (JWT، OAuth، Rate Limiting، CSRF).

اختر الرقم وسأفصّل فيه بشكل كامل.

Scroll to Top

🤖 موصى به لك بناءً على اهتماماتك