Paketi yüklerken postinstall komut dosyasını devre dışı bırakmak herhangi bir npm seçeneği var mı? Veya package.json'dan herhangi bir alanı yeniden yazmak için?
Paketi yüklerken postinstall komut dosyasını devre dışı bırakmak herhangi bir npm seçeneği var mı? Veya package.json'dan herhangi bir alanı yeniden yazmak için?
Yanıtlar:
Yalnızca postinstall
komut dosyalarını devre dışı bırakmak mümkün değildir . Ancak, tüm komut dosyalarını aşağıdakileri kullanarak devre dışı bırakabilirsiniz:
$ npm install --ignore-scripts
Delbertooo'nun yorumlarda belirttiği gibi, bu da bağımlılıkların senaryolarını devre dışı bırakır.
--ignore-scripts
TÜM komut dosyalarını (bağımlılıklarınızdan bile) devre dışı bırakır. Bağımlılıklarınızın, örneğin bazı ikili dosyaları yüklemek için komut dosyaları çalıştırması gerekiyorsa, bunlar kırılabilir / eksik olabilir.
--ignore-scripts
, ya da (global olarak ayarladığım) ilgili yapılandırma seçeneği de npm run start
sessizce hiçbir şey yapmayacak ve başarıyı rapor edecek anlamına gelecektir. Amaze.
Ayarları npm yapılandırma dosyasında da etkinleştirebilirsiniz.
npm config set ignore-scripts true
Not: Bu, tüm NPM paketleri için komut dosyalarını devre dışı bırakır.
npm run …
- herhangi bir uyarı yapmadan hiçbir şey yapmaz.
Bunu kendi kitaplığınız için yapmak için aşağıdaki gibi basit bir şey öneriyorum:
#!/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
sonra npm kurulumunuzu yapın:
your_pkg_skip_postinstall="yes" npm install
Projem için postinstall komut dosyasını devre dışı bırakmak istedim, ancak projemin bağımlılıklarının tüm komut dosyalarının çalıştığımda çalışmasını istedim npm install
. Sonunda bunu yaptım.
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
şimdi paketinizin oluşturulmasını önlemek için SKIP_BUILD = 1 ortam değişkenini ayarlamanız yeterlidir.
SKIP_BUILD=1 npm install