2012-08-27 9 views
13

Posso installare più versioni dello stesso modulo node a livello globale con npm?Come installare più versioni dello stesso modulo node.js?

+0

Potresti essere in grado di utilizzare un gestore delle versioni per Nodo per facilitare questo: https://github.com/isaacs/nave – mikefrey

+0

E come ti occuperesti di esso? Lo richiede? Eseguirlo? – Vinz243

+0

@Freyday, https://github.com/isaacs/nave è interessante sapere, ma mi sembra di consentire uno scambio facile (e la combinazione?) di "versioni multiple di" _nodejs_, NON quello che Q ha richiesto: di "node _module_'s, e qui" globally with npm ". Quindi ti è mancata la parte 'modulo' di Q? O se no, per favore dettaglia la soluzione che stai vedendo (voglio delle soluzioni anche per questo), idealmente come la sua risposta a questa Q inclusa in modalità Wiki se la risposta potrebbe essere aiutata da altre persone che modificano come estenderla. Grazie. –

risposta

1

Attualmente non disponibile.

(correlato: È possibile installare più versioni di nodo utilizzando con NVM (Node Manager versione): https://github.com/creationix/nvm)

+1

Penso che la domanda posta riguardava l'installazione di più versioni di un particolare modulo nodo. NVM non è progettato per consentire l'installazione di più versioni del runtime di Node? –

+0

Giusto, aggiornerà la risposta –

3

Non credo che ci sia un (buon) modo per fare questo.

Tuttavia, suppongo che il tuo caso d'uso sia questo: hai due progetti, che richiedono versioni diverse di un pacchetto installato globalmente.

Per casi come questo, di solito evito di installare i pacchetti globalmente del tutto e li installa invece in locale (senza -g). Ad esempio, se si vuole installare una versione più vecchia specifica del pacchetto "moka" per un determinato progetto, faresti

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

(Si noti che non stiamo usando -g qui.) Poi chiami come so:

./node_modules/.bin/mocha 
1

Mentre è possibile, sarà probabilmente difficile da mantenere senza scrivere i propri script per gestirlo. Per questo, assumerò che tu stia usando MacOS o Linux e hai il nodo installato in /usr/local/bin

Quando installi un modulo globale, npm colloca il modulo e le sue dipendenze nella stessa posizione in cui è installato il nodo . Solitamente /usr/local/lib/node_modules, quindi crea un collegamento simbolico per quello modulo in /usr/local/bin.

Ad esempio, si desidera installare nodemon, quindi eseguire npm install -g nodemon. NPM installa nodemon a /usr/local/lib/node_modules/nodemon e crea un link simbolico a /usr/local/bin/nodemon che punta a /usr/local/lib/node_modules/nodemon/bin/nodemon.js

lascia supporre che è stato appena installato [email protected], ma per qualche ragione è necessario anche [email protected]

di averli entrambi installati in una sola volta, ma non il conflitto, si può essere in grado di:

  1. rinominare la directory per la copia esistente di nodemon nodemon-nodemon18
  2. creare un nuovo nodemon18 collegamento simbolico con ln -s /usr/local/bin/nodemon18 /usr/local/lib/node_modules/nodemon/bin/nodemon.js (non dimenticate di renderlo eseguibile)
  3. installare [email protected] via npm install -g [email protected]

Ora, eseguendo nodemon dal terminale verrà eseguito [email protected] e l'esecuzione di nodemon18 eseguirà [email protected]

YMMV. Io davvero non consiglio di farlo.

Problemi correlati