Os módulos de nós têm 755 permissões, que permissões devo definir para que o npm não precise de sudo?

4

Estou usando uma estrutura que executa npm e webpack automaticamente, o diretório /usr/lib/node_modules tem 755 permissões que exigem a execução de npm a sudo . O framework que eu uso não permite adicionar sudo ao comando.

Agora preciso instalar pacotes npm no formato global (por exemplo, npm install webpack -g ) sem usar sudo .

Quais permissões serão aceitáveis para /usr/lib/node_modules ? Se eu definir 777 permissões, isso será OK e seguro?

Obrigado!

    
por Indu Pillai 07.01.2017 / 19:55

1 resposta

5

Você não precisa alterar permissão de npm para poder usá-lo sem sudo . Para configurar npm para ser executado sem sudo , siga estas etapas:

Opção 1:

  1. Obtenha o caminho do diretório npm:

    npm config get prefix
    
  2. Se você obteve /usr vá para a opção 2 mais altere o proprietário dos diretórios npm para o seu:

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

Opção 2:

  1. Crie um diretório para instalações globais:

    mkdir ~/.npm-global
    
  2. Configure para usar esse diretório:

    npm config set prefix '~/.npm-global'
    
  3. Abra ou crie ~/.profile e adicione isto:

    export PATH=~/.npm-global/bin:$PATH
    
  4. Adicione isso também ao seu arquivo ~/.bashrc (opcional):

    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. Atualize os arquivos:

    source ~/.bashrc
    
  6. Teste executando:

    npm install -g jshint
    

fonte:

link

link

    
por George Udosen 07.01.2017 / 20:30