البرامج النصية الحيادية الحزمة مع Node.js

كيفية تبسيط تشغيل البرامج النصية في NPM و Yarn و PNPM

إذا كان لديك نصوص مخصصة في ملف package.json ، مثل "npm my-script" أو "yarn my-script" ، فلن تعمل إلا مع مدير الحزم الذي تحدده. لكن NPM يقدم واجهة برمجة تطبيقات لاستدعاء الملف التنفيذي الحالي في كل مرة ، دون تحديده صراحة.

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "npm run cleanup && npm run copy"
  }
}

استخدام $ npm_execpath

باستخدام السلسلة "$ npm_execpath" بدلاً من "npm" أو "yarn" (أو مدير حزم آخر مثل "pnpm") ، سيعمل هذا النص البرمجي مع كل مدير حزم ، بغض النظر عن ما استخدمه المطور الحالي لاستدعاء النص الأصلي .

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "$npm_execpath run cleanup && $npm_execpath run copy"
  }
}

هل هو متوافق مع جميع الأجهزة؟

للأسف ، استخدام “npm_execpth $” لجعل البرامج النصية تعمل مع أي مدير حزم لا يعمل بشكل موثوق به على الأجهزة التي تم تثبيت Windows عليها.

ما هي الطريقة الأكثر موثوقية لاستدعاء البرامج النصية في package.json؟

لذلك ، لا تزال الطريقة الأكثر موثوقية لاستدعاء البرامج النصية المخصصة في package.json-file هي تحديد مدير الحزم القابل للتنفيذ بشكل صريح والتأكد من أن فريقك يستخدم تلك البرامج فقط.

إنه أفضل على الأجهزة التي لا تعمل بنظام Windows ، حيث يمكنك استخدام "$ npm_execpath" لتنفيذ تلك البرامج النصية بشكل موثوق.