2012-08-27 16 views
13

¿Puedo instalar múltiples versiones del mismo módulo node globalmente con npm?¿Cómo instalar múltiples versiones del mismo módulo node.js?

+0

Es posible que pueda utilizar un administrador de versiones para Node para facilitar esto: https://github.com/isaacs/nave – mikefrey

+0

¿Y cómo lo trataría? Requerirlo? ¿Ejecutarlo? – Vinz243

+0

@Freyday, https://github.com/isaacs/nave es interesante de conocer, pero me parece que permite un intercambio fácil (y la combinación?) de 'múltiples versiones de' _nodejs_, NO lo que pidió Q: de 'node _module_'s, y aquí' globally with npm '. Entonces, ¿te perdiste la parte del "módulo" de la Q? O si no, detalla la solución que estás viendo (también quiero soluciones para esto), idealmente como su propia respuesta a esta Q, incluso en el modo Wiki, si la respuesta puede ser ayudada por otros editores para ampliarla también. Gracias. –

Respuesta

1

Actualmente no.

(relacionados: Puede instalar varias versiones de nodo utilizando la NVM (Node Manager Versión): https://github.com/creationix/nvm)

+1

Creo que la pregunta que se hizo fue sobre la instalación de múltiples versiones de un módulo de nodo particular. ¿No está diseñado NVM para permitirle instalar múltiples versiones del tiempo de ejecución de Node? –

+0

Muy bien, actualizará la respuesta –

3

No creo que hay una (buena) manera de hacer esto.

Sin embargo, supongo que su caso de uso es el siguiente: Tiene dos proyectos, que requieren versiones diferentes de un paquete instalado a nivel mundial.

En casos como este, generalmente evito instalar paquetes globalmente e instalarlos localmente (sin -g). Por ejemplo, si se desean instalar una versión anterior del paquete específico "moka" para un proyecto determinado, que haría

cd ~/src/myproject 
npm install --save-dev [email protected]^1.0.0 

(Tenga en cuenta que no estamos usando -g aquí.) Entonces, como lo llama Entonces:

./node_modules/.bin/mocha 
1

Si bien es posible, probablemente será difícil de mantener sin escribir sus propios scripts para administrarlo. Para esto, voy a suponer que estás usando MacOS o Linux, y tienes un nodo instalado en /usr/local/bin

Cuando instalas un módulo global, npm coloca el módulo y sus dependencias en la misma ubicación que ese nodo está instalado . Generalmente /usr/local/lib/node_modules, luego crea un enlace simbólico para ese módulo en /usr/local/bin.

Por ejemplo, desea instalar nodemon, por lo que ejecuta npm install -g nodemon. NPM instala nodemon a /usr/local/lib/node_modules/nodemon y crea un enlace simbólico al /usr/local/bin/nodemon que apunta a /usr/local/lib/node_modules/nodemon/bin/nodemon.js

Asumamos que acaba [email protected] instalado, pero por alguna razón también necesita [email protected]

tenerlos tanto instalados a la vez, pero no el conflicto, que puede ser capaz de:

  1. cambiar el nombre del directorio de la copia existente de nodemon nodemon-nodemon18
  2. crear un nuevo nodemon18 enlace simbólico utilizando ln -s /usr/local/bin/nodemon18 /usr/local/lib/node_modules/nodemon/bin/nodemon.js (no se olvide de hacerlo ejecutable)
  3. instalación [email protected] través npm install -g [email protected]

Ahora, ejecutando nodemon desde su terminal ejecutará [email protected] y ejecutar nodemon18 ejecutará [email protected]

YMMV. Realmente no recomiendo hacer esto.

Cuestiones relacionadas