Anscheinend haben Sie versucht, ein npm-Paket global und nicht lokal zu installieren, wie im Folgenden man npm install
beschrieben:
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.json
Datei 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 -g
Sie diese verwenden möchten. In der Tat ist dies jedoch keine gute Idee, was möglicherweise zu Berechtigungsproblemen führen kann.sudo
npm install express-generator -g
BEACHTEN
Es gibt Anweisungen zur Installation express-generator
mit -g
Option, damit das Skript im Systempfad express-cli.js
verfügbar ist. Sie können jedoch auch das lokal installierte Skript verwenden, das sich im node_modules
if 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: