Eu procurei na página de módulos wiki, mas não consigo encontrar nada parecido com virtualenv (python) ou rvm.
Alguém aqui separa o node.js em seu próprio ambiente? Eu realmente não gosto de instalar o npm em todo o sistema.
Eu procurei na página de módulos wiki, mas não consigo encontrar nada parecido com virtualenv (python) ou rvm.
Alguém aqui separa o node.js em seu próprio ambiente? Eu realmente não gosto de instalar o npm em todo o sistema.
Respostas:
Se o problema principal é ter pacotes npm em todo o sistema, talvez considere usar o comando 'bundle' muito interessante com o npm. Isso está mais próximo do congelamento de gemas ou do uso de bundler nos trilhos, em vez do rvm.
É super fácil. Basta criar um arquivo package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
e então execute:
npm bundle vendor
ou se sua versão do npm for> = 1.0, execute:
npm install
para congelar no diretório do fornecedor. e então use:
require.paths.unshift('./vendor');
npm install
substituído a npm bundle
partir do NPM 1.0, acredito.
nodeenv - ambiente virtual para node.js (analógico virtualenv )
node.js
ambiente seja ativado junto com o ambiente Python. Veja nodeenv -p
.
Existem também alguns sistemas de gerenciamento de versão do Node que podem ajudar.
Confira o Nave https://github.com/isaacs/nave
O NVM também pode ser usado https://github.com/creationix/nvm
Há também um chamado n https://github.com/visionmedia/n
nvm
ou n
e quer comutação automática quando você alterar diretórios, olhada avn
: github.com/wbyoung/avn
A resposta da bxjx é conceitualmente precisa. No entanto, observe que o comando bundle não ocupa mais um diretório. Ele semprenode_modules
coloca pacotes na pasta, para que o npm saiba onde encontrá-los mais tarde (e evite dependências de instalação dupla).
Qualquer solução provavelmente envolverá a instalação do npm e da nave "em todo o sistema" (isto é, no seu PATH
, que poderia estar em ~
algum lugar), mas somente na instalação de suas dependências específicas no ambiente virtual.
Eu respondi mais detalhadamente sobre a questão do github .
tl; dr: O caso de uso é válido e útil e, embora esteja principalmente lá, não é tão bem servido quanto poderia ser. Devemos ter certeza de refletir e fazer o que é certo.
Você nem sempre precisa instalar dependências globalmente. Normalmente, é recomendado porque você pode usar os comandos que os pacotes npm fornecem, mas se você instalá-lo localmente (no node_modules
diretório), também poderá usar esses comandos, eles apenas serão encerrados no node_modules/.bin/
diretório, portanto, será necessário digitar node_modules/.bin/<command>
: o que é irritante, mas é claro que você pode adicionar esse caminho à sua PATH
variável de ambiente:
export PATH=node_modules/.bin:$PATH
Então você pode apenas digitar <command>
e funciona!
Na verdade, existe um comando npm que retorna um caminho absoluto para o .bin
diretório:
$ npm bin
/path/to/node_modules/.bin
Este comando também funciona quando você está em um subdiretório do projeto; ele retornará o primeiro node_modules/.bin
diretório encontrado nos diretórios pai.
Você pode adicionar esse alias no seu .bashrc
para adicionar automaticamente o .bin/
diretório ao seu PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Portanto, quando você estiver no diretório de um projeto que tenha um node_modules/
diretório na raiz, você poderá digitar nodebin
e usar todos os comandos que estão no .bin/
diretório!
parece que existe uma maneira melhor:
Instalando o Node.js e o npm em um Python Virtualenv
agora eu posso usar ferramentas de nó sem mexer no ambiente de lixeira global
Se você gosta simples, eu recomendo n da visionmedia , não poderia ser mais fácil!
npm install
isso.