NPM (और धागे) गुजरता एक बहुत वातावरण चर के रूप में स्क्रिप्ट में package.json से डेटा की। npm run env
उन सभी को देखने के लिए उपयोग करें । यह https://docs.npmjs.com/misc/scripts#environment में प्रलेखित है और यह न केवल "जीवनचक्र" लिपियों के लिए है, prepublish
बल्कि इसके द्वारा निष्पादित किसी भी लिपि के लिए भी है npm run
।
आप इन्हें इनसाइड कोड (जैसे process.env.npm_package_config_port
JS) में एक्सेस कर सकते हैं, लेकिन वे पहले से ही स्क्रिप्ट चलाने वाले शेल के लिए उपलब्ध हैं ताकि आप उन्हें $npm_...
"स्क्रिप्ट" (यूनिक्स सिंटैक्स में विस्तार के रूप में भी एक्सेस कर सकें , विंडोज़ पर काम नहीं कर सकते?)।
"Config" खंड इस उपयोग के लिए लगता है:
"name": "myproject",
...
"config": {
"port": "8010"
},
"scripts": {
"start": "node server.js $npm_package_config_port",
"test": "wait-on http://localhost:$npm_package_config_port/ && node test.js http://localhost:$npm_package_config_port/"
}
इन "कॉन्फ़िगर" फ़ील्ड का एक महत्वपूर्ण गुण यह है कि उपयोगकर्ता उन्हें संकुल को संशोधित किए बिना ओवरराइड कर सकते हैं ।
$ npm run start
> myproject@0.0.0 start /home/cben/mydir
> node server.js $npm_package_config_port
Serving on localhost:8010
$ npm config set myproject:port 8020
$ git diff package.json # no change!
$ cat ~/.npmrc
myproject:port=8020
$ npm run start
> myproject@0.0.0 start /home/cben/mydir
> node server.js $npm_package_config_port
Serving on localhost:8020
देखें NPM config और यार्न config डॉक्स।
ऐसा प्रतीत होता है कि यार्न पढ़ता है ~/.npmrc
इसलिए npm config set
दोनों को प्रभावित करता है, लेकिन yarn config set
लिखता है ~/.yarnrc
, इसलिए केवल यार्न इसे देखेंगे :-(