Похоже, вы пытались установить пакет npm глобально, а не локально, как описывает man npm install
:
Аргумент -g или --global заставит npm установить пакет глобально, а не локально.
Как правило, когда вы настраиваете проект npm (среди многих других, которые могут быть у вас), не рекомендуется устанавливать пакеты в глобальных модулях Node.js (/ usr / local / lib / node_modules), поскольку ваш журнал отладки предложенный.
Вместо использования -g
используйте --save
, который автоматически сохранит пакет как зависимость для вашего package.json
файла:
Нравится:
$ 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"
}
}
Но, как упоминалось в других ответах, если вы собираетесь использовать -g
, вы должны использовать sudo
(если у вашего пользователя есть привилегии sudo: см. / Etc / sudoers) при выполнении npm install express-generator -g
, но на самом деле это не очень хорошая идея, возможно, вызывает проблемы с разрешением.
УВЕДОМЛЕНИЕ
Есть инструкции по установке express-generator
с опцией -g
, чтобы сценарий express-cli.js
был доступен по системному пути, но вы также можете использовать локально установленный сценарий, расположенный в node_modules
, если ваш проект npm:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Если появляется сообщение типа / usr / bin / env: ‘node’: Нет такого файла или каталога, установите nodejs-legacy
(Debian / Ubuntu)
IMHO, использование -g
(также использующее sudo
) похоже на hic sunt dracones, если вы не уверены в последствиях.
Для дополнительной информации:
person
ivanleoncz
schedule
06.03.2019