Existe-t-il une option npm pour désactiver le script de post-installation lors de l'installation du package? Ou pour réécrire n'importe quel champ de package.json?
Existe-t-il une option npm pour désactiver le script de post-installation lors de l'installation du package? Ou pour réécrire n'importe quel champ de package.json?
Réponses:
Il n'est pas possible de désactiver uniquement les postinstall
scripts. Cependant, vous pouvez désactiver tous les scripts en utilisant:
$ npm install --ignore-scripts
Comme delbertooo l'a mentionné dans les commentaires, cela désactive également les scripts des dépendances.
--ignore-scripts
désactive TOUS les scripts - même de vos dépendances. Si vos dépendances ont besoin d'exécuter des scripts pour, par exemple, installer des binaires, ils peuvent être endommagés / incomplets.
--ignore-scripts
ou l'option de configuration associée (que j'ai définie globalement) signifiera également que cela npm run start
ne fera rien en silence et signalera le succès. Étonner.
Vous pouvez également activer les paramètres dans le fichier de configuration npm.
npm config set ignore-scripts true
Remarque: Cela désactivera les scripts pour tous les packages NPM.
npm run …
- il ne fera simplement rien, sans aucun avertissement.
Pour ce faire pour votre propre bibliothèque, je recommande quelque chose de simple comme:
#!/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
puis faites votre installation npm avec:
your_pkg_skip_postinstall="yes" npm install
Je voulais désactiver le script de post-installation pour mon projet, mais je voulais que tous les scripts des dépendances de mon projet s'exécutent quand je le fais npm install
. C'est ce que j'ai fini par faire.
./scripts/skip.js
if (process.env.SKIP_BUILD) {
process.exit(0);
} else {
process.exit(1);
}
"scripts": {
...
"postinstall": "node ./scripts/skip.js || npm run build",
...
}
maintenant, définissez simplement la variable d'environnement SKIP_BUILD = 1 pour empêcher votre paquet de se construire et vos dépendances se construiront très bien
SKIP_BUILD=1 npm install