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 installsubstituído a npm bundlepartir do NPM 1.0, acredito.
nodeenv - ambiente virtual para node.js (analógico virtualenv )
node.jsambiente 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
nvmou ne 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_modulesdiretó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 PATHvariá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 .bindiretó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/.bindiretório encontrado nos diretórios pai.
Você pode adicionar esse alias no seu .bashrcpara 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 nodebine 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 installisso.