wake-up-neo.net

NPM-Skript vorinstallieren

Ich versuche, ein Polizeiskript auszuführen, bevor Pakete installiert werden. Zum Beispiel:

{
  "name": "pre-hook-check",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "preinstall": "echo preinstall",
    "postinstall": "echo postinstall"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "abc": "^0.6.1",
    "preact": "^8.2.5"
  }
}

Es scheint, dass das Pre- und Post-Installationsskript im obigen Beispiel nur funktioniert, wenn ich npm install mache, aber ich möchte, dass es jedes Mal ausgeführt wird, wenn ich versuche, etwas zu installieren. 

Beispiel: Angenommen, ich möchte ein Skript schreiben, um die Version des Pakets zu überprüfen, wenn mein Team npm install <some package> ausführt. Ich möchte nach der Version des Installationspakets suchen und überprüfen, ob die Version über "1.0.0" liegt, ansonsten lassen Sie sie nicht installieren.

Ich hatte vor, ein vorinstalliertes Skript zu schreiben, das geht

npm info lodash version 

und prüft die Version jedes Pakets, das ich installieren möchte. Wenn die Version nicht verfügbar ist, plane ich, sie interaktiv zu machen und vor der Installation eine Bestätigung des Benutzers anzufordern. 

5
user98239820

Sie haben Recht, das Skript für die Vorinstallation wird nur ausgeführt, wenn Sie npm installieren. Derzeit können Sie kein Skript ausführen, bevor Sie ein Modul installieren. Sie können jedoch Shell-Skript und npm view https://docs.npmjs.com/cli/view um dies zu tun.

Erstellen Sie zunächst eine moduleinstall.sh -Datei, die den gleichen Umfang wie Ihre package.json und das folgende Shell-Skript dazu hat 

echo 'Enter the name of the module'
read module_name
npm view $module_name version 
echo "Do you want to install this version(y/N) " 
read option 
if [ "$option" = "N" ] || [ "$option" = "n" ]
then 
echo "exiting...."
exit 1
else
npm install $module_name
fi

stellen Sie sicher, dass Sie es mit chmod +x moduleinstall.sh ausführbar machen, und schreiben Sie dies in Ihre package.json

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"info": "./moduleinstall.sh"
}

Jetzt müssen Sie nur noch den Befehl npm run info ausführen und dann den Anweisungen zur Installation eines Moduls folgen, indem Sie die Version überprüfen. Sie können es mit verschiedenen Optionen der npm-Ansicht und der Shell-Skripterstellung erweitern. Hoffe das hilft.

2
yawningphantom