
Я использую фреймворк, который запускается npm
автоматически webpack
, каталог /usr/lib/node_modules
имеет разрешения 755, которые требуются для запуска npm
через sudo
. Фреймворк, который я использую, не позволяет добавлять sudo
в команду.
Теперь мне нужно установить пакеты npm в глобальном виде (например, npm install webpack -g
) без использования sudo
.
Какие разрешения будут приемлемы для /usr/lib/node_modules
? Если я установлю разрешения 777, это будет приемлемо и безопасно?
Спасибо!
решение1
Вам не нужно ничего менятьразрешениеnpm
чтобы иметь возможность использовать его без . ЧТОБЫ sudo
настроить npm
для запуска без sudo
выполните следующие действия:
Опция 1:
Получить путь к каталогу npm:
npm config get prefix
Если у тебя есть
/usr
перейти к варианту 2в противном случае измените владельца каталогов npm на своего:sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Вариант 2:
Создать каталог для глобальных установок:
mkdir ~/.npm-global
Настройте использование этого каталога:
npm config set prefix '~/.npm-global'
Откройте или создайте
~/.profile
и добавьте это:export PATH=~/.npm-global/bin:$PATH
Добавьте это также в ваш
~/.bashrc
файл (необязательно):export PATH=/home/username/.npm-global/bin:$PATH export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/username/.npm-global/lib/node_modules
Обновите файлы:
source ~/.bashrc
Тестирование путем запуска:
npm install -g jshint
источник:
https://docs.npmjs.com/getting-started/fixing-npm-permissions