2017-04-26 1 views
0

Npm bietet eine Möglichkeit, eine benutzerdefinierte ausführbare Datei oder ein Skript auszuführen, nachdem jedes Paket installiert wurde (siehe Hook Scripts).Wie erhält man den Paketnamen von npm "postinstall" Hook?

Hier ist ein kleines Haken-Skript, das ich geschrieben habe:

Haken-Test-NPM/node_modules/.hooks/post

#!/usr/bin/env node 
console.log("postinstall... " + process.argv.join(" ")); 

ich dann ein Paket in der üblichen Art und Weise installiert:

$ npm install --save some-package 

aber die Ergebnisse waren nicht ganz, wie ich gehofft hatte:

> [email protected] postinstall /Users/macuser/Desktop/hook-test-npm/node_modules/some-package 
> /Users/macuser/Desktop/hook-test-npm/node_modules/.hooks/postinstall 
postinstall... /usr/local/bin/node /Users/macuser/Desktop/hook-test-npm/node_modules/.hooks/postinstall 

Der Name des Pakets, das gerade installiert wurde ("some-package") scheint nicht als ein Argument für meine ausführbare Hook bereitgestellt werden.

Gibt es eine Möglichkeit, auf diese Informationen innerhalb des Hooks zuzugreifen?

Antwort

0

Nach weiteren Experimenten stieß ich auf die folgenden zwei Umgebungsvariablen, die die Informationen zu enthalten scheinen, nach denen ich suchte. Ich weiß nicht, ob diese direkt verwendet werden sollen; aber sie werden sicherlich das Problem für mich vorläufig lösen:

#!/usr/bin/env node 

console.log("postinstall..."); 

// Print out the name of the package that was just installed. 
console.log(" " + process.env.npm_package_name); 

// Print out the directory of the package that was just installed. 
console.log(" " + process.env.PWD); 
Verwandte Themen