Node.js के साथ पैकेज-अज्ञेयवादी स्क्रिप्ट

एनपीएम, यार्न और पीएनपीएम में चल रही स्क्रिप्ट को सरल कैसे करें

अगर आपकी package.json-file में "npm my-script" या "yarn my-script" जैसी कस्टम स्क्रिप्ट हैं, तो वे केवल आपके द्वारा परिभाषित पैकेज मैनेजर के साथ काम करेंगी। लेकिन एनपीएम वर्तमान निष्पादन योग्य को हर बार स्पष्ट रूप से निर्दिष्ट किए बिना कॉल करने के लिए एक एपीआई प्रदान करता है।

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

$npm_execpath का उपयोग करना

"Npm" या "यार्न" (या "pnpm" जैसे अन्य पैकेज मैनेजर) के बजाय स्ट्रिंग "$npm_execpath" का उपयोग करके, यह स्क्रिप्ट प्रत्येक पैकेज मैनेजर के साथ काम करेगी, इससे कोई फर्क नहीं पड़ता कि वर्तमान डेवलपर ने मूल स्क्रिप्ट को कॉल करने के लिए क्या उपयोग किया है .

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

क्या यह सभी मशीनों पर संगत है?

अफसोस की बात है, किसी भी पैकेज मैनेजर के साथ स्क्रिप्ट काम करने के लिए "$npm_execpth" का उपयोग करना विंडोज़ स्थापित मशीनों पर भरोसेमंद काम नहीं करता है।

पैकेज.जेसन में स्क्रिप्ट को कॉल करने का सबसे विश्वसनीय तरीका क्या है?

इसलिए, package.json-file में अपनी कस्टम स्क्रिप्ट को कॉल करने का सबसे विश्वसनीय तरीका अभी भी स्पष्ट रूप से पैकेज चरनी निष्पादन योग्य को परिभाषित करना है और यह सुनिश्चित करना है कि आपकी टीम केवल उसी का उपयोग करती है।

यह उन उपकरणों पर बेहतर है जो विंडोज नहीं चलाते हैं, जहां आप उन स्क्रिप्ट्स को मज़बूती से निष्पादित करने के लिए "$npm_execpath" का उपयोग कर सकते हैं।