نشر تطبيق TypeScript على VPS: دليل خطوة بخطوة من الألف إلى الياء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

نشر تطبيق TypeScript على VPS: دليل خطوة بخطوة من الألف إلى الياء

\n\n

التطوير باستخدام TypeScript هو المعيار الحديث لإنشاء تطبيقات ويب موثوقة وقابلة للتوسع. ومع ذلك، بعد كتابة الكود، يطرح السؤال: كيف تنشره بشكل صحيح على خادم حقيقي؟ في هذه المقالة، سنشرح دورة النشر الكاملة لتطبيق TypeScript على VPS (خادم خاص افتراضي). ستتعلم كيفية إعداد البيئة، وترجمة TypeScript إلى JavaScript، وتنظيم التشغيل التلقائي باستخدام PM2، وإعداد الوكيل العكسي عبر Nginx. المادة موجهة للمطورين الذين لديهم فهم أساسي لـ TypeScript وLinux.

\n\n

1. إعداد VPS وتثبيت البرامج اللازمة

\n\n

الخطوة الأولى هي إعداد الخادم. سنستخدم Ubuntu 22.04 LTS، لأنه أحد أكثر أنظمة التشغيل استقرارًا وشعبية لـ VPS. اتصل بالخادم عبر SSH:

\n\n
ssh root@your-server-ip
\n\n

قم بتحديث مدير الحزم وتثبيت Node.js (يوصى بإصدار LTS) مع مدير الحزم npm:

\n\n
apt update && apt upgrade -y\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt install -y nodejs git nginx
\n\n

تحقق من التثبيت:

\n\n
node -v   # v20.x.x\nnpm -v    # 10.x.x
\n\n

الآن سنقوم بتثبيت TypeScript وPM2 (مدير العمليات لـ Node.js) بشكل عام:

\n\n
npm install -g typescript pm2
\n\n

هام: يتم ترجمة TypeScript إلى JavaScript، لذلك ليس من الضروري أن يكون TypeScript نفسه في بيئة التشغيل على الخادم - يكفي ترجمة الكود محليًا أو على الخادم قبل التشغيل. ومع ذلك، قد يكون التثبيت العام لـ ts-node مفيدًا لتصحيح الأخطاء.

\n\n

2. ترجمة TypeScript وإعداد package.json

\n\n

لنفترض أن تطبيقك يحتوي على الهيكل التالي:

\n\n
my-ts-app/\n├── src/\n│   ├── index.ts\n│   ├── routes.ts\n│   └── utils.ts\n├── package.json\n├── tsconfig.json\n└── .gitignore
\n\n

يجب ضبط ملف tsconfig.json لبناء الإنتاج. مثال على الإعداد:

\n\n
{\n  "compilerOptions": {\n    "target": "ES2020",\n    "module": "commonjs",\n    "outDir": "./dist",\n    "rootDir": "./src",\n    "strict": true,\n    "esModuleInterop": true,\n    "skipLibCheck": true,\n    "forceConsistentCasingInFileNames": true,\n    "resolveJsonModule": true\n  },\n  "include": ["src/**/*"],\n  "exclude": ["node_modules", "dist", "tests"]\n}
\n\n

أضف نصوصًا برمجية للبناء والتشغيل في package.json:

\n\n
{\n  "name": "my-ts-app",\n  "version": "1.0.0",\n  "scripts": {\n    "build": "tsc",\n    "start": "node dist/index.js",\n    "dev": "ts-node src/index.ts"\n  },\n  "dependencies": {\n    "express": "^4.18.2"\n  },\n  "devDependencies": {\n    "typescript": "^5.3.3",\n    "@types/express": "^4.17.21",\n    "ts-node": "^10.9.2"\n  }\n}
\n\n

الآن، عند تشغيل npm run build، يقوم TypeScript بترجمة الملفات من مجلد src إلى مجلد dist. مثال على خادم بسيط باستخدام Express (ملف src/index.ts):

\n\n
import express, { Request, Response } from 'express';\n\nconst app = express();\nconst PORT = process.env.PORT || 3000;\n\napp.get('/', (req: Request, res: Response) => {\n  res.send('تطبيق TypeScript يعمل على VPS!');\n});\n\napp.listen(PORT, () => {\n  console.log(`الخادم يعمل على المنفذ ${PORT}`);\n});
\n\n

3. استنساخ المستودع والبناء على الخادم

\n\n

انسخ تطبيقك إلى الخادم. الطريقة الأكثر ملاءمة هي عبر Git. إذا كان كودك مخزنًا في GitHub/GitLab، قم بتنفيذ الأمر التالي على الخادم:

\n\n
cd /var/www\ngit clone https://github.com/your-username/my-ts-app.git\ncd my-ts-app
\n\n

قم بتثبيت التبعيات ونفذ عملية البناء:

\n\n
npm install\nnpm run build
\n\n

بعد ذلك، ستظهر الملفات المترجمة .js

المدونات

توصيات الكتب