Модули Node имеют разрешения 755. Какие разрешения мне следует установить, чтобы npm не требовал sudo?

Модули Node имеют разрешения 755. Какие разрешения мне следует установить, чтобы npm не требовал sudo?

Я использую фреймворк, который запускается 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:

  1. Получить путь к каталогу npm:

    npm config get prefix
    
  2. Если у тебя есть/usr перейти к варианту 2в противном случае измените владельца каталогов npm на своего:

     sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    

Вариант 2:

  1. Создать каталог для глобальных установок:

    mkdir ~/.npm-global
    
  2. Настройте использование этого каталога:

    npm config set prefix '~/.npm-global'
    
  3. Откройте или создайте ~/.profileи добавьте это:

    export PATH=~/.npm-global/bin:$PATH
    
  4. Добавьте это также в ваш ~/.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
    
  5. Обновите файлы:

    source ~/.bashrc
    
  6. Тестирование путем запуска:

    npm install -g jshint
    

источник:

https://docs.npmjs.com/getting-started/fixing-npm-permissions

http://www.competa.com/blog/how-to-run-npm-without-sudo/

Связанный контент