Gostaria de usar os pacotes Node.js de distribuição (ou o chris-lea ppa para versões mais recentes), mas instalar o NPM em meu diretório inicial.
Isso pode parecer exigente, mas é uma maneira bastante idiomática para desenvolvedores poliglotas / github-using para configurar ambientes de runtime / biblioteca de linguagem no Linux: pacotes de distro para o tempo de execução, bibliotecas de terceiros em ambiente por usuário (consulte virtualenv, RVM - RVM também criará Ruby para você, se desejar). Se necessário, construirei o nó localmente, mas é um PITA, já que o Node está se tornando um requisito de desenvolvimento incidental para muitos projetos.
Respostas:
O NPM já instalará pacotes locais em seus projetos, mas ainda gosto de manter o sistema longe dos arquivos do meu sistema operacional. Eis como sugiro compartimentar os pacotes Nodejs:
Instale o Nodejs e o NPM por meio do PPA chris-lea. Então eu configurei uma raiz de pacote em meu homedir para conter os pacotes "globais" do Node:
Defina o NPM para usar este diretório para suas instalações de pacote globais:
Configure seu PATH e MANPATH para ver os comandos no prefixo $ NPM_PACKAGES adicionando o seguinte ao seu .zshrc / .bashrc:
Agora, quando você fizer um
npm install -g
, o NPM instalará as bibliotecas~/.npm-packages/lib/node_modules
e vinculará as ferramentas executáveis ao~/.npm-packages/bin
, que está em seuPATH
.Basta usar
npm install -g
como faria normalmente:fonte
node
está instalado, masnpm
não está, siga a configuração na resposta acima e, em seguida,npm_config_prefix=$NPM_PACKAGES curl -L https://npmjs.org/install.sh | sh
faça com quenpm
seja instalado em seu diretório pessoal.npm config set prefix $NPM_PACKAGES
$HOME/.local
vez disso para o prefixo. É uma pasta comumente usada hoje em dia por outro software para armazenar arquivos locais.echo 'prefix = ${NPM_PACKAGES}' >> ~/.npmrc
o caminho não é codificado em.npmrc
, mas o npm o lerá da variável de ambiente sempre que o npm for executado (observe que mudei"
para a'
fim de evitar que o shell que executa o eco expanda a variável e adicionei em{}
torno da variável , já que essa é a sintaxe usada em.npmrc
. Para fazer este trabalho, eu tive que alterar.bashrc
para ler:.export NPM_PACKAGES="$HOME/.npm-packages"
Adicionar oexport
torna disponível para npm. Não relacionado, acho que você precisaria adicionarexport
outras variáveis também.A resposta de Jake foi postada em 2012 e, embora útil, faz referência aos PPAs Node.js de Chris Lea que não são mais atualizados desde março de 2015.
Estas são as etapas que utilizo para instalar o Node.js e o npm no meu diretório inicial:
Instale o Node.js com nvm (não é
sudo
necessário):Agora você pode
install -g
semsudo
e tudo vai para~/.nvm/
Ou instale o Node.js sem nvm ( instruções oficiais ):
Instale Node.js
Node.js v6 (LTS atual em maio de 2017):
Node.js v7:
Altere o diretório padrão do npm para um local:
Alternativamente, substitua
.npm-global
pelo diretório de sua escolha.Atualize o npm e verifique se ele está instalado no seu
$HOME
diretório:Agora você pode,
install -g
semsudo
e sem bagunçar seus arquivos de sistema.fonte
A solução postada por Just Jake é ótima. No entanto, devido a um bug com npm> 1.4.10, pode não funcionar como esperado. (Veja isto e isto )
Enquanto o bug é resolvido, você pode fazer o downgrade para npm 1.4.10 seguindo estas etapas:
sudo npm install -g [email protected]
npm --version
)fonte
Porque python já faz um ótimo trabalho
virtualenv
, eu usonodeenv
. Em comparação comnvm
, você pode criar vários ambientes para a mesma versão de nó (por exemplo, dois ambientes para nó,0.10
mas com diferentes conjuntos de pacotes).O leia-me é muito bom: https://github.com/ekalinin/nodeenv
fonte
Usei a solução @ just-jake por algum tempo e descobri que o nvm é mais fácil de configurar. Também é uma solução muito poderosa que permite instalar e usar diferentes versões do
nodejs
.No Ubuntu 14.04 ou 16.04:
Instale os pacotes de pré-requisitos para a construção
nodejs
:Instale o nvm :
No caso de uma versão mais recente do nvm estar disponível, você pode encontrar o comando de instalação real no site do nvm .
nvm
o instalador adicionará o script de bootstrap ao~/.bashrc
, então você precisa reabrir o terminal para executá-lo ou fazer:Agora você pode instalar qualquer
nodejs
versão que desejar, alternar entre elas etc.Use
nvm ls-remote
para listar asnodejs
versões disponíveis .Para instalar, por exemplo,
nodejs
v4.2.4 faça:fonte
Para expandir a resposta fornecida por Just Jake e usuário1533401: Não consigo fazer o downgrade porque uso hospedagem compartilhada e o nó está instalado em um diretório do sistema. É também por isso que alterei o diretório em que o npm instala scripts globais, se quiser que ele faça isso. Para quem está no mesmo barco, aqui está outra solução temporária que achei que funciona:
npm install -g --prefix=$(npm config get prefix) <package>
O bug é que o npm não lê seu arquivo de configuração por usuário, mas especificá-lo toda vez que você instala um script global corrige isso. Encontrado aqui .
fonte
Como já foi dito aqui e aqui
fonte
Outras respostas têm soluções desatualizadas: a solução de 2020 está usando
NPM_CONFIG_PREFIX
a variável de ambiente. (Ver detalhes )Por exemplo,
fonte