node.js - modifyvars - what is less




Erro "Tente executar este comando novamente como root/administrador" ao tentar instalar o LESS (7)

Estou tentando instalar o LESS na minha máquina e já instalei o nó. No entanto, quando insiro "node install -g less", recebo o seguinte erro e não tenho certeza do que fazer?

FPaulMAC:bin paul$ npm install -g less
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/less' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/less
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/less'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/less']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/less' }
npm ERR! not ok code 0

Basta colocar o sudo no início do seu comando. Como afirmado anteriormente, uma instalação executa alguns scripts que podem ser perigosos, mas vi que a instalação global ajuda muito e é muito mais simples.

Execute sudo npm install -g less


Eu continuava tendo esse problema porque o Windows estava configurando minha pasta node_modules . Certifique-se de desmarcar isso.


Honestamente, este é um mau conselho da npm . Uma instalação pode executar scripts arbitrários e executá-lo com o sudo pode ser extremamente perigoso! Você poderia fazer o sudo npm install -g less para instalá-lo globalmente, mas, em vez disso, eu recomendaria atualizar suas configurações do npm:

#~/.npmrc
prefix=~/.npm_modules

Então você pode atualizar seu caminho:

#~/.bashrc or ~/.zshrc, etc.
export PATH=$PATH:$HOME/.npm_modules/bin

Então você não precisa de permissões de root para executar a instalação e ainda pode usar o binário.

Isso se aplicaria apenas ao seu usuário, no entanto. Se você quiser que todo o sistema possa usar o módulo, precisará dizer a todos para adicionar seu caminho. Soluções mais complicadas e robustas incluiriam adicionar uma pasta com módulos / binários de nó nos quais um grupo poderia instalar e adicionar isso ao caminho de todos.


Isso definitivamente vai ajudar. Responda pelo próprio npm. https://docs.npmjs.com/getting-started/fixing-npm-permissions

Abaixo é extraído do URL para sua conveniência.

Opção 1: altere a permissão para o diretório padrão do npm

  1. Encontre o caminho para o diretório do npm:

    npm config get prefix

Para muitos sistemas, este será / usr / local.

AVISO: Se o caminho exibido for apenas / usr, alterne para a Opção 2 ou você estragará suas permissões.

  1. Mude o proprietário dos diretórios do npm para o nome do usuário atual (seu nome de usuário!):

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

Isso altera as permissões das subpastas usadas pelo npm e algumas outras ferramentas (lib / node_modules, bin e share).

Opção 2: Alterar o diretório padrão do npm para outro diretório

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

    mkdir ~/.npm-global

  2. Configure o npm para usar o novo caminho do diretório:

    npm config set prefix '~/.npm-global'

  3. Abra ou crie um arquivo ~ / .profile e adicione esta linha:

    export PATH=~/.npm-global/bin:$PATH

  4. De volta à linha de comando, atualize as variáveis ​​do sistema:

    source ~/.profile

Teste: faça o download de um pacote globalmente sem usar o sudo.

`npm install -g jshint`

Em vez das etapas 2 a 4, você pode usar a variável ENV correspondente (por exemplo, se você não deseja modificar ~/.profile ):

NPM_CONFIG_PREFIX=~/.npm-global

Opção 3: use um gerenciador de pacotes que cuide disso para você

Se você estiver fazendo uma nova instalação do Node no Mac OS, poderá evitar esse problema completamente usando o gerenciador de pacotes Homebrew. O Homebrew define as coisas prontas para uso com as permissões corretas.

brew install node


No meu caso, eu precisava atualizar a versão npm de 5.3.0 → 5.4.2.

Antes que eu pudesse usar isso -- npm i -g npm .. eu precisava executar dois comandos que resolviam perfeitamente o meu problema. É altamente provável que ele resolva seu problema.

Etapa 1: sudo chown -R $USER /usr/local

Etapa 2: npm install -g cordova ionic

Depois disso, você deve atualizar seu npm para a versão mais recente

Etapa 3: npm i -g npm

Então você está pronto para ir. Espero que isso resolva seu problema. Felicidades!!


O npm possui uma página oficial sobre como https://docs.npmjs.com/getting-started/fixing-npm-permissions quando você recebe o erro EACCES (Erro: Acesso). A página ainda tem um vídeo.

Você pode corrigir esse problema usando uma das duas opções:

  1. Mude a permissão para o diretório padrão do npm.
  2. Mude o diretório padrão do npm para outro diretório.

Sei que essa é uma pergunta antiga, mas nenhuma das soluções parecia uma boa prática, portanto, estou colocando como resolvi esse problema:

Tentei resolver esse problema usando o Homebrew mas ele também estava instalando o nó no /usr/local directory que causaria novamente o erro EACCES .

Tinha que usar um gerenciador de versões como o nvm para obter mais informações, consulte o https://docs.npmjs.com/getting-started/fixing-npm-permissions oficial do https://docs.npmjs.com/getting-started/fixing-npm-permissions .

Para vários sistemas operacionais .

O nvm instala o nó e seus módulos na HOME EACCES do usuário, resolvendo problemas do EACCES .





less