क्या यह कोई npm विकल्प मौजूद है जो कि अधिष्ठापन के दौरान पोस्ट स्क्रिप्ट को निष्क्रिय करने के लिए है? या package.json से किसी भी क्षेत्र को फिर से लिखने के लिए?
क्या यह कोई npm विकल्प मौजूद है जो कि अधिष्ठापन के दौरान पोस्ट स्क्रिप्ट को निष्क्रिय करने के लिए है? या package.json से किसी भी क्षेत्र को फिर से लिखने के लिए?
जवाबों:
केवल postinstall
स्क्रिप्ट को अक्षम करना संभव नहीं है । हालाँकि, आप सभी लिपियों को अक्षम कर सकते हैं:
$ npm install --ignore-scripts
जैसा कि डेलबर्टो ने टिप्पणियों में उल्लेख किया है, यह भी निर्भरता की लिपियों को निष्क्रिय करता है।
--ignore-scripts
आपकी स्क्रिप्ट पर निर्भर करता है - यहां तक कि आपकी निर्भरता से भी। यदि आपके आश्रितों को स्क्रिप्ट्स को चलाने की आवश्यकता है, उदाहरण के लिए कुछ बायनेरिज़ स्थापित करें जो वे टूट सकते हैं / अपूर्ण हो सकते हैं।
--ignore-scripts
, या संबद्ध कॉन्फ़िगरेशन विकल्प (जो मैंने विश्व स्तर पर सेट किया है) का मतलब यह भी npm run start
होगा कि चुपचाप कुछ भी नहीं करेगा और सफलता की रिपोर्ट करेगा। विस्मित करना।
अपनी खुद की लाइब्रेरी के लिए ऐसा करने के लिए, मैं कुछ सरल करने की सलाह देता हूं:
#!/usr/bin/env bash
## this is your postinstall.sh script:
set -e;
if [ "$your_pkg_skip_postinstall" == "yes" ]; then
echo "skipping your package's postinstall routine.";
exit 0;
fi
तो अपने npm के साथ स्थापित करें:
your_pkg_skip_postinstall="yes" npm install
मैं अपनी परियोजना के लिए स्थापना रद्द स्क्रिप्ट को निष्क्रिय करना चाहता था, लेकिन चाहता था कि जब मैं करूँ तो मेरी परियोजना की निर्भरता की सभी लिपियाँ चलें npm install
। यह वही है जो मैंने किया।
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
अब अपने पैकेज को बनाने से रोकने के लिए बस पर्यावरण चर SKIP_BUILD = 1 सेट करें और आपकी निर्भरता ठीक-ठाक बनेगी
SKIP_BUILD=1 npm install