Parece que intentó instalar un paquete npm globalmente en lugar de localmente, como se man npm install
describe a continuación:
El argumento -g o --global hará que npm instale el paquete globalmente en lugar de localmente.
Generalmente, cuando está configurando un proyecto npm (entre muchos otros que podría tener), no es una buena idea instalar paquetes en los módulos globales de Node.js (/ usr / local / lib / node_modules), como su registro de depuración sugirió.
En lugar de usar -g
, use --save
, que guardará automáticamente el paquete como una dependencia para su package.json
archivo:
Me gusta esto:
$ 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"
}
}
Pero como se mencionó en las otras respuestas, si va a usar -g
, debe usar sudo
( si su usuario tiene privilegios de sudo: vea / etc / sudoers ) al realizar npm install express-generator -g
, pero de hecho, no es una buena idea, posiblemente causando problemas de permisos.
AVISO
Hay instrucciones para instalar express-generator
con la -g
opción, para tener el script express-cli.js
disponible en la ruta del sistema, pero también puede usar el script instalado localmente, ubicado en el node_modules
proyecto if npm:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Si aparece un mensaje como / usr / bin / env: 'nodo': no aparece dicho archivo o directorio , instale nodejs-legacy
(Debian / Ubuntu)
En mi humilde opinión, usar -g
(también usar sudo
) es como hic sunt dracones , si no estás seguro de las consecuencias.
Para mayor información: