Sembra che tu abbia tentato di installare un pacchetto npm a livello globale anziché locale, come man npm install
descritto:
L' argomento -g o --global farà sì che npm installi il pacchetto a livello globale anziché locale.
In genere, quando si configura un progetto npm (tra molti altri che si potrebbero avere), non è una buona idea installare pacchetti sui moduli globali Node.js (/ usr / local / lib / node_modules), come log di debug suggerito.
Invece di usare -g
, usa --save
, che salverà automaticamente il pacchetto come dipendenza per il tuo package.json
file:
Come questo:
$ 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"
}
}
Ma come menzionato nelle altre risposte, se hai intenzione di usare -g
, devi usare sudo
( se il tuo utente ha i privilegi di sudo: vedi / etc / sudoers ) durante l'esecuzione npm install express-generator -g
, ma in effetti non è una buona idea, probabilmente causando problemi di autorizzazione.
AVVISO
Ci sono istruzioni per l'installazione express-generator
con -g
opzione, al fine di avere lo script express-cli.js
disponibile sul percorso del sistema, ma puoi usare anche lo script installato localmente, situato nel node_modules
caso in cui il tuo progetto npm:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Se viene visualizzato un messaggio come / usr / bin / env: 'nodo': nessun file o directory simile , installa nodejs-legacy
(Debian / Ubuntu)
IMHO, usare -g
(anche usando sudo
) è come hic sunt dracones , se non si è sicuri delle conseguenze.
Per maggiori informazioni: