Dire di voler installare una libreria lib-a
che ha dipendenze dep-1
e dep-2
. Se lib-a
ha dichiarato nel suo package.json di utilizzare una versione di dep-2
non aggiornata (ad esempio, non funziona sul nodo 0.8.0 appena uscito), ma esiste un ramo di dep-2
che funziona con il nodo 0.8 .0 - nome della filiale node0.8.0
.Quando si installa un pacchetto con NPM, si può dire di usare una versione diversa di una delle sue dipendenze?
Così i pacchetti nell'equazione sono:
git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0
C'è un modo per dire NPM installare lib-a
, ma utilizzare dep-2#node0.8.0
invece di dep-2
?
Con NPM è possibile installare un ramo specifico di un progetto come questo:
npm install git://github.com/user-c/dep-2#node0.8.0
E se dovessi personalizzare l'package.json di lib-a
, si potrebbe dire che per utilizzare dep-2#node0.8.0
come questo:
{
"name": "lib-a",
"dependencies": {
"dep-1": ">= 1.5.0",
"dep-2": "git://github.com/user-c/dep-2#node0.8.0"
}
}
modificando la package.json è quindi possibile eseguire
npm install lib-a
e installerà il ramo 0.82 compatibile con il ramo dep-2
. Ma ciò richiede che io abbia accesso alla modifica di lib-a
, che per il mio caso specifico non lo faccio. Tecnicamente, potrei inserire lo lib-a
e apportare la suddetta modifica a package.json. Ma nel mio caso specifico, lib-a
v'è una dipendenza di un'altra biblioteca, quindi avrei dovuto sborsare il progetto è fatto riferimento nel, e così via ...
Quindi la domanda è, è un modo per comunicare a NPM di installare lib-a
e dirgli di utilizzare il ramo node0.8.0
di dep-2
? Qualcosa del genere:
npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0
Sarebbe fantastico. Se non è possibile, sarebbe bello saperlo, così posso prepararmi a forgiare/personalizzare la catena dei progetti.
Sembra che se si installa la dipendenza prima, poi le altre librerie che richiedono quella dipendenza non scaricherà i propri. Questo risolve il problema! Grazie! –
È corretto? Ho provato npm -g install/path/to/my/fork-with-fix e poi npm -g pacchetto di installazione-which-should-use-forked-dependency-with-fix e ... scarica ancora la versione ufficiale. –
Dai un'occhiata a 'npm link'. – knownasilya