Parece que você tentou instalar um pacote npm globalmente, e não localmente, como man npm install
descrito a seguir :
O argumento -g ou --global fará com que o npm instale o pacote globalmente, e não localmente.
Geralmente, quando você está configurando um projeto npm (entre muitos outros que você poderia ter), não é uma boa ideia instalar pacotes nos módulos globais do Node.js. (/ usr / local / lib / node_modules), como o log de depuração sugerido.
Em vez de usar -g
, use --save
, que salvará automaticamente o pacote como uma dependência do seu package.json
arquivo:
Como isso:
$ 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"
}
}
Mas, como as outras respostas mencionadas, se você for usar -g
, precisará usá-lo sudo
( se o usuário tiver privilégios de sudo: consulte / etc / sudoers ) ao executar npm install express-generator -g
, mas, na verdade, não é uma boa ideia, possivelmente causando problemas de permissão.
AVISO PRÉVIO
Existem instruções para instalar express-generator
com a -g
opção, a fim de disponibilizar o script express-cli.js
no caminho do sistema, mas você também pode usar o script instalado localmente, localizado no node_modules
projeto if your npm:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Se uma mensagem como / usr / bin / env: 'node': Nenhum arquivo ou diretório aparecer, instale nodejs-legacy
(Debian / Ubuntu)
IMHO, usar -g
(também usar sudo
) é como dracones hic sunt , se você não tiver certeza das consequências.
Para mais informações: