He buscado en la página de módulos wiki, pero no puedo encontrar nada similar a virtualenv (python) o rvm.
¿Alguien aquí separa node.js en su propio entorno? Realmente no me gusta instalar npm en todo el sistema.
He buscado en la página de módulos wiki, pero no puedo encontrar nada similar a virtualenv (python) o rvm.
¿Alguien aquí separa node.js en su propio entorno? Realmente no me gusta instalar npm en todo el sistema.
Respuestas:
Si el problema principal es tener paquetes npm en todo el sistema, entonces tal vez considere usar el genial comando 'bundle' con npm. Esto está más cerca de congelar gemas o usar bundler en rieles, en lugar de rvm.
Es super fácil. Simplemente cree un archivo package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
y luego ejecuta:
npm bundle vendor
o si su versión npm es> = 1.0 ejecutar:
npm install
para congelar en el directorio de proveedores. y luego usa:
require.paths.unshift('./vendor');
npm install
reemplazado a npm bundle
partir de NPM 1.0, creo.
nodeenv : entorno virtual para node.js (Analog virtualenv )
node.js
entorno se active junto con el entorno Python. Ver nodeenv -p
.
También hay algunos sistemas de gestión de versiones de Nodo que pueden ayudar.
Echa un vistazo a Nave https://github.com/isaacs/nave
NVM también podría usarse https://github.com/creationix/nvm
También hay uno llamado n https://github.com/visionmedia/n
nvm
o n
desea cambiar automáticamente cuando cambia de directorio, consulte avn
: github.com/wbyoung/avn
La respuesta de bxjx es conceptualmente precisa. Sin embargo, tenga en cuenta que el comando de paquete ya no toma un directorio. Es siempre cae por paquetes en la node_modules
carpeta, por lo que la NGP sabe dónde encontrarlos más tarde (y puede evitar dependencias de doble instalación).
Cualquier solución probablemente implicará instalar npm y nave "en todo el sistema" (es decir, en su PATH
, que podría estar en ~
algún lugar), pero luego solo instalar sus dependencias específicas en el entorno virtual.
Respondí más a fondo sobre el tema de github .
tl; dr: El caso de uso es válido y útil, y aunque está principalmente allí, no está tan bien servido como podría estarlo. Debemos asegurarnos de pensarlo bien y hacerlo bien.
No siempre necesita instalar dependencias globalmente. Por lo general, se recomienda porque luego puede usar los comandos que proporciona un paquete npm, pero si lo instala localmente (en el node_modules
directorio), también puede usar estos comandos, solo terminan en el node_modules/.bin/
directorio, por lo que tendrá que escribir node_modules/.bin/<command>
, lo cual es molesto, pero por supuesto puede agregar esta ruta a su PATH
variable de entorno:
export PATH=node_modules/.bin:$PATH
¡Entonces puedes escribir <command>
y funciona!
En realidad, hay un comando npm que devuelve una ruta absoluta al .bin
directorio:
$ npm bin
/path/to/node_modules/.bin
Este comando también funciona cuando está en un subdirectorio del proyecto, devolverá el primer node_modules/.bin
directorio que encuentre en sus directorios principales.
Puede agregar este alias en su .bashrc
para agregar automáticamente el .bin/
directorio a su PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
Entonces, cuando está en un directorio de un proyecto que tiene un node_modules/
directorio en la raíz, puede escribir nodebin
y luego puede usar todos los comandos que están en el .bin/
directorio.
Parece que hay una mejor manera:
Instalación de Node.js y npm en un Python Virtualenv
ahora puedo usar herramientas de nodo sin ensuciar el entorno bin global
Si te gusta simple, realmente recomiendo visionmedia's n , ¡no podría ser más fácil!
npm install
para esto.