اذهب إلى المحتوى
  • 0

كيف أستطيع تحديد نسخة node.js اللازمة لعمل المشروع

Bassel Jhr

السؤال

أعمل على مشروع يتطلّب حصراً النسخة 12 ومافوق من node.js لكي يعمل بالشكل الصحيح. هل يوجد طريقة تمكنني من تحديد رقم النسخة ضمن package.json وبالتالي عندما يقوم باقي المطورين بتحميل حزم المشروع يتم تنبيههم إلى ضرورة وجود هذه النسخة أو في حال يجب عليهم تحديث النسخة الحالية؟

تم التعديل في بواسطة Bassel Jhr
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

engineStrict تم إهمالها على ما اعتقد لذا يمكنك القيام بالتالي:

# معرفة النسخة
import semver from 'semver';
import { engines } from './package';
const version = engines.node;
if (!semver.satisfies(process.version, version)) {
  console.log(`Required node version ${version} not satisfied with current version ${process.version}.`);
  process.exit(1);
}
# package.json:
{
  "name": "my package",
  "engines": {
    "node": ">=50.9" // intentionally so big version number
  },
  "scripts": {
    "requirements-check": "babel-node check-version.js",
    "postinstall": "npm run requirements-check"
  }
}
#.nvmrc   ثم إنشاء  ملف

 
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

نعم يمكن ذلك عن طريق تحديد النسخة المدعومة ضمن حقل engines في ملف package.json

{
  "engines": {
    "node": ">=12"
  }
}

ولكي تلزم بقية الفريق بهذه النسخة حصرا ولا تجعل وجودها مجرد تفضيل تقوم بإنشاء ملف .npmrc بجانب ملف package.json وتضع فيه السطر

engine-strict=true

بعد هذا الإعداد سينتج خطأ عند في حال النسخة مخالفة للمواصفات المدعومة التي ذكرتها في package.json

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

أعتقد أنه يمكنك استخدام حقل "المحركات":

{ "engines" : { "node" : ">=0.12" } }

ثم قم بانشاء ملف 

.npmrc

في جذر المشروع root وضع فيه 

engine-strict=true

سيؤدي إلى حدوث خطأ أثناء التثبيت إذا كان إصدار node غير متوافق.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...