Parece que você tentou instalar um pacote npm globalmente, e não localmente, como man npm installdescrito 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.jsonarquivo:
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-generatorcom a -gopção, a fim de disponibilizar o script express-cli.jsno caminho do sistema, mas você também pode usar o script instalado localmente, localizado no node_modulesprojeto 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: