npm: Deaktivieren Sie das Postinstall-Skript für das Paket
142
Gibt es eine npm-Option zum Deaktivieren des Nachinstallationsskripts während der Installation des Pakets? Oder um ein Feld aus package.json neu zu schreiben?
Vielen Dank. Genau das brauche ich. Wo finde ich solche Optionen? Dies wird nicht in 'npm help install', 'npm help config' und 'npm help scripts' beschrieben.
Vorsicht! Die Option --ignore-scriptsdeaktiviert ALLE Skripte - auch von Ihren Abhängigkeiten. Wenn Ihre Abhängigkeiten Skripte ausführen müssen, um beispielsweise einige Binärdateien zu installieren, können diese beschädigt / unvollständig sein.
Delbertooo
7
Gibt es dann eine Technik, um node_modules (und alle ihre Skripte) zu installieren, aber nur die Skripte des Hauptpakets zu ignorieren?
Derrick
3
Nicht nur das, sondern --ignore-scriptsauch die zugehörige Konfigurationsoption (die ich global festgelegt habe) bedeutet, dass npm run startim Stillen nichts unternommen wird und der Erfolg gemeldet wird. Erstaunen.
Ash Berlin-Taylor
21
Sie können die Einstellungen auch in der npm-Konfigurationsdatei aktivieren.
npm config set ignore-scripts true
Hinweis: Dadurch werden Skripte für alle NPM-Pakete deaktiviert.
Um dies für Ihre eigene Bibliothek zu tun, empfehle ich etwas Einfaches wie:
#!/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
Vielen Dank! Dies funktioniert hervorragend, wenn Sie nur versuchen, Ihr eigenes Skript zu deaktivieren, jedoch nicht ALLE Skripte in allen Abhängigkeiten.
Brian Neisler
@BrianNeisler yer sehr willkommen, fühlt sich immer gut an, anderen Menschen zu helfen. Übrigens denke ich, dass doppelte Klammern [[]] für die meisten Anwendungsfälle besser sein könnten als einfache Klammern, obwohl ich nicht sicher bin.
Alexander Mills
2
Ich wollte das Nachinstallationsskript für mein Projekt deaktivieren, wollte aber, dass alle Skripte der Abhängigkeiten meines Projekts ausgeführt werden, wenn ich dies tue npm install. Das habe ich letztendlich getan.
"scripts":{..."postinstall":"node ./scripts/skip.js || npm run build",...}
Setzen Sie jetzt einfach die Umgebungsvariable SKIP_BUILD = 1, um zu verhindern, dass Ihr Paket erstellt wird und Ihre Abhängigkeiten einwandfrei erstellt werden
Antworten:
Es ist nicht möglich, nur
postinstall
Skripte zu deaktivieren . Sie können jedoch alle Skripte deaktivieren, indem Sie:Wie in den Kommentaren erwähnt, deaktiviert dies auch die Skripte der Abhängigkeiten.
quelle
--ignore-scripts
deaktiviert ALLE Skripte - auch von Ihren Abhängigkeiten. Wenn Ihre Abhängigkeiten Skripte ausführen müssen, um beispielsweise einige Binärdateien zu installieren, können diese beschädigt / unvollständig sein.--ignore-scripts
auch die zugehörige Konfigurationsoption (die ich global festgelegt habe) bedeutet, dassnpm run start
im Stillen nichts unternommen wird und der Erfolg gemeldet wird. Erstaunen.Sie können die Einstellungen auch in der npm-Konfigurationsdatei aktivieren.
npm config set ignore-scripts true
Hinweis: Dadurch werden Skripte für alle NPM-Pakete deaktiviert.
quelle
Um dies für Ihre eigene Bibliothek zu tun, empfehle ich etwas Einfaches wie:
Dann installieren Sie Ihre npm mit:
quelle
Ich wollte das Nachinstallationsskript für mein Projekt deaktivieren, wollte aber, dass alle Skripte der Abhängigkeiten meines Projekts ausgeführt werden, wenn ich dies tue
npm install
. Das habe ich letztendlich getan../scripts/skip.js
Setzen Sie jetzt einfach die Umgebungsvariable SKIP_BUILD = 1, um zu verhindern, dass Ihr Paket erstellt wird und Ihre Abhängigkeiten einwandfrei erstellt werden
quelle