Anscheinend haben Sie versucht, ein npm-Paket global und nicht lokal zu installieren, wie im Folgenden man npm installbeschrieben:
Das Argument -g oder --global bewirkt , dass npm das Paket global und nicht lokal installiert.
Wenn Sie ein npm-Projekt einrichten (unter anderem), ist es im Allgemeinen keine gute Idee, Pakete auf den globalen Modulen von Node.j (/ usr / local / lib / node_modules) als Debug-Protokoll zu installieren empfohlen.
Anstatt zu verwenden -g, verwenden Sie --save, wodurch das Paket automatisch als Abhängigkeit für Ihre package.jsonDatei gespeichert wird:
So was:
$ npm install express-generator --save
$ cat package.json
{
"name": "first_app_generator",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "ivanleoncz",
"license": "MIT",
"dependencies": {
"express-generator": "^4.16.0"
}
}
Aber wie in den anderen Antworten erwähnt, müssen Sie bei der Ausführung ( wenn Ihr Benutzer über Sudo-Berechtigungen verfügt: siehe / etc / sudoers ) verwenden, wenn -gSie diese verwenden möchten. In der Tat ist dies jedoch keine gute Idee, was möglicherweise zu Berechtigungsproblemen führen kann.sudonpm install express-generator -g
BEACHTEN
Es gibt Anweisungen zur Installation express-generatormit -gOption, damit das Skript im Systempfad express-cli.jsverfügbar ist. Sie können jedoch auch das lokal installierte Skript verwenden, das sich im node_modulesif your npm-Projekt befindet:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Wenn eine Nachricht wie / usr / bin / env: 'node': Keine solche Datei oder kein solches Verzeichnis angezeigt wird, installieren Sie nodejs-legacy(Debian / Ubuntu)
IMHO, verwenden -g(auch verwenden sudo) ist wie hic sunt dracones , wenn Sie sich über die Konsequenzen nicht sicher sind.
Für weitere Informationen: