كيفية فرض استخدام الغزل أو NPM
في هذا المنشور القصير ، سأوضح لك كيفية منع استخدام npm أو الغزل ، حسب احتياجاتك. هيا بنا نبدأ!
تحرير npmrc
قد لا يكون لديك هذا الملف في قاعدة البيانات الخاصة بك. إذا كانت هذه هي الحالة ، فقم بإنشاء هذا الملف في المجلد الجذر للتطبيق الخاص بك.
لأنها تتيح لنا تحديد تكوينات مدير مجموعة ويتم استخدامه من قبل كل من الآلية الوقائية الوطنية و الغزل .
.npmrc
يجب أن يحتوي ملفك على engine-strict
الخاصية التي تم وضع علامة عليها كـ true
.
//.npmrc file engine-strict = true
يخبر هذا الخيار مدير الحزم باستخدام إصدار المحركات التي حددناها في package.json
الملف.
قم بتحرير package.json
package.json
يجب عليك إضافة engines
القسم داخل ملفك إذا لم يكن لديك حاليًا.
//package.json { ... "engines": { "npm": "please-use-yarn", "yarn": ">= 1.19.1" }, ... }
في الكود أعلاه ، package.json
يستخدم الملف إصدارًا من yarn
1.19.1 أو أعلى.
ولكن ل npm
أننا تحديد الإصدار الذي لا وجود له.
بهذه الطريقة نتأكد من أنه عندما يحاول شخص ما الاستخدام npm
بدلاً من ذلك yarn
، سيتلقى خطأ ينتج عنه ' please-use-yarn
'.
تشغيل تثبيت npm
بمجرد الانتهاء من التغييرات المذكورة أعلاه ، حاول الجري npm install
.
سوف تتلقى خطأ يمنعك من استخدام npm
.
npm ERR! code ENOTSUP npm ERR! notsup Unsupported engine for [email protected]: wanted: {"npm":"please-use-yarn","yarn":">= 1.19.1"} (current: {"node":"12.16.3","npm":"6.14.4"}) npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Required: {"npm":"please-use-yarn","yarn":">= 1.19.1"} npm ERR! notsup Actual: {"npm":"6.14.4","node":"12.16.3"} npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\YourUser\AppData\Roaming\npm-cache\_logs\2020-05-21T10_21_04_676Z-debug.log
هذا ، بالطبع ، يمكن القيام به بالعكس إذا كنت تريد منع استخدام yarn
.
استنتاج
من السهل جدًا ضمان استخدام مدير حزمة واحد فقط داخل مشروعك.
سيؤدي ذلك إلى تقليل فرصة الأخطاء التي يسببها المطورون الذين يستخدمون مديري حزم مختلفين ومن الممارسات الجيدة توحيد قواعد وإدارة ترميز المشروع.
يمكنك التواصل معي وتسألني عن أي شيء على Twitter و Facebook وموقع الويب الخاص بي.