كيفية فرض استخدام الغزل أو 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يستخدم الملف إصدارًا من yarn1.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 وموقع الويب الخاص بي.