نشر تطبيق TypeScript على VPS: دليل خطوة بخطوة من الألف إلى الياء
\n\nالتطوير باستخدام TypeScript هو المعيار الحديث لإنشاء تطبيقات ويب موثوقة وقابلة للتوسع. ومع ذلك، بعد كتابة الكود، يطرح السؤال: كيف تنشره بشكل صحيح على خادم حقيقي؟ في هذه المقالة، سنشرح دورة النشر الكاملة لتطبيق TypeScript على VPS (خادم خاص افتراضي). ستتعلم كيفية إعداد البيئة، وترجمة TypeScript إلى JavaScript، وتنظيم التشغيل التلقائي باستخدام PM2، وإعداد الوكيل العكسي عبر Nginx. المادة موجهة للمطورين الذين لديهم فهم أساسي لـ TypeScript وLinux.
\n\n1. إعداد VPS وتثبيت البرامج اللازمة
\n\nالخطوة الأولى هي إعداد الخادم. سنستخدم Ubuntu 22.04 LTS، لأنه أحد أكثر أنظمة التشغيل استقرارًا وشعبية لـ VPS. اتصل بالخادم عبر SSH:
\n\nssh root@your-server-ip\n\nقم بتحديث مدير الحزم وتثبيت Node.js (يوصى بإصدار LTS) مع مدير الحزم npm:
\n\napt update && apt upgrade -y\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt install -y nodejs git nginx\n\nتحقق من التثبيت:
\n\nnode -v # v20.x.x\nnpm -v # 10.x.x\n\nالآن سنقوم بتثبيت TypeScript وPM2 (مدير العمليات لـ Node.js) بشكل عام:
\n\nnpm install -g typescript pm2\n\nهام: يتم ترجمة TypeScript إلى JavaScript، لذلك ليس من الضروري أن يكون TypeScript نفسه في بيئة التشغيل على الخادم - يكفي ترجمة الكود محليًا أو على الخادم قبل التشغيل. ومع ذلك، قد يكون التثبيت العام لـ ts-node مفيدًا لتصحيح الأخطاء.
\n\n2. ترجمة TypeScript وإعداد package.json
\n\nلنفترض أن تطبيقك يحتوي على الهيكل التالي:
\n\nmy-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 "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 "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):
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\n3. استنساخ المستودع والبناء على الخادم
\n\nانسخ تطبيقك إلى الخادم. الطريقة الأكثر ملاءمة هي عبر Git. إذا كان كودك مخزنًا في GitHub/GitLab، قم بتنفيذ الأمر التالي على الخادم:
\n\ncd /var/www\ngit clone https://github.com/your-username/my-ts-app.git\ncd my-ts-app\n\nقم بتثبيت التبعيات ونفذ عملية البناء:
\n\nnpm install\nnpm run build\n\nبعد ذلك، ستظهر الملفات المترجمة .js
المدونات
توصيات الكتب
اقرأ أيضًا
التكرار عبر كلمات سلسلة نصية في C++: 5 طرق من المبتدئ إلى المحترف
رواتب مطوري JavaScript في روسيا: نظرة على سوق 2025
التكرار عبر نطاق من الأرقام في Go: 3 طرق قوية
تحليل البيانات باستخدام TypeScript: كيفية استخراج البيانات بشكل أسرع وأكثر موثوقية
أنماط التصميم في Swift: المستوى المتقدم لتطبيقات iOS/macOS