كيفية وضع حزم @types/* بشكل صحيح: في dependencies أم devDependencies؟
مرحبًا! أنا مبتدئ في TypeScript وأحاول فهم إعداد المشروع. لدي تطبيق صغير على Express، وقد قمت بتثبيت أنواع express وnode وبعض الحزم الأخرى.
هذا هو ملف package.json (جزء منه):
```json
{
"dependencies": {
"express": "^4.18.2",
"@types/express": "^4.17.21",
"@types/node": "^20.11.5",
"lodash": "^4.17.21",
"@types/lodash": "^4.17.0"
},
"devDependencies": {
"typescript": "^5.3.3",
"ts-node": "^10.9.2",
"@types/jest": "^29.5.11"
}
}
```
لاحظت أنه في بعض المشاريع يتم وضع حزم @types/* في devDependencies، بينما في مشاريع أخرى توضع في dependencies. على سبيل المثال، وضعت @types/express في dependencies لأنه مطلوب لتشغيل express نفسه. بينما @types/jest وضعتها في devDependencies لأن jest يُستخدم فقط للاختبارات.
ولكن بعد ذلك قرأت أن أنواع TypeScript ليست تبعيات وقت التشغيل (runtime dependencies) على الإطلاق، ويجب دائمًا وضعها في devDependencies. الآن أنا مرتبك: ماذا أفعل مع @types/express و @t