npm: désactiver le script de post-installation pour le package
142
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?
THX. C'est exactement ce dont j'ai besoin. Où puis-je trouver de telles options? Ceci n'est pas décrit dans 'npm help install', 'npm help config' et 'npm help scripts'.
Mise en garde! L'option --ignore-scriptsdé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.
delbertooo
7
Alors y a-t-il une technique pour installer node_modules (et tous leurs scripts) mais ignorer uniquement les scripts du paquet principal?
Derrick
3
Non seulement cela, mais --ignore-scriptsou l'option de configuration associée (que j'ai définie globalement) signifiera également que cela npm run startne fera rien en silence et signalera le succès. Étonner.
Ash Berlin-Taylor
21
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.
Notez qu'il désactive également la possibilité d'exécuter manuellement npm run …- il ne fera simplement rien, sans aucun avertissement.
CodeManX
4
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
Merci! Cela fonctionne très bien si vous essayez simplement de désactiver votre propre script mais pas TOUS les scripts dans toutes les dépendances.
Brian Neisler
@BrianNeisler yer très bienvenu, se sent toujours bon d'aider les autres. En passant, je pense que les doubles crochets [[]] pourraient être meilleurs que les crochets simples pour la plupart des cas d'utilisation, pas sûr que cela.
Alexander Mills
2
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":{..."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
Réponses:
Il n'est pas possible de désactiver uniquement les
postinstall
scripts. Cependant, vous pouvez désactiver tous les scripts en utilisant:Comme delbertooo l'a mentionné dans les commentaires, cela désactive également les scripts des dépendances.
la source
--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 celanpm 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.
la source
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:
puis faites votre installation npm avec:
la source
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
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
la source