Come NPM Link per una versione locale della vostra dipendenza
Quindi want voglio creare una versione locale dimoment
per la mia webapp del calendario.
Perché?
Perchémoment
non include rappresentazioni Klingon del tempo. O Borg, del resto. Che tipo di pacchetto di tempo all-inclusive non abbraccia le culture straniere!?
Il TL; DR: clona il pacchetto localmente da qualche parte, npm installa i suoi dep, npm link
alla sua radice, quindi torna alla tua app appariscente che usa moment, al tipo root npm link "moment"
& ora stai usando la versione locale. Non sono riuscito a far funzionare i link dei filati. Non so perché.
Destra Right
Sto abbandonando Yarn in questa spiegazione perché non ho potuto ottenere la stessa funzionalità per lavorare con esso come NPM. Quindi, ad ogni modo, ecco:
Voglio due cartelle su cui concentrarmi.
my-calendar-app/node_modules/moment
e
Users/aid/desktop/local-modules/
Poi hogit clone...
il pacchetto che voglio modificare / migliorare, *nella* cartella local-modules.
Una volta che ci sono dentro, eseguo npm install
per assicurarmi di avere tutte le dipendenze e la configurazione giuste per questo (babelrc, webpack, dev e dipendenze regolari).
In quello locale, vado in moment.js
o qualunque sia il file di immissione. E proprio in alto ho messo una console.accedi, solo per mostrare che stiamo usando quello locale / Klingon-friendly:
cd
(nel terminale) nel tuo nuovo, moduli locali/momento pacchetto dir e alla sua radice, digitarenpm link
. Per essere chiari: questo è il collegamento di una versione locale, clonata, leggermente modificata di un pacchetto npm.
Quindi abbiamo creato un link indice a questo pacchetto locale. La conferma terminale per il mio assomiglia a questo:
Ora torna al tuo progetto principale e, a livello di root, digli che vuoi usare la versione locale:-
cd /Users/aid/Projects/my-calendar-app && npm link "moment"
Che sputa una conferma che stai mappando a un modulo locale:
Users/aid/Projects/my-calendar-app/node_modules/moment -> aid/.nvm/versions/node/v10.15.0/lib/node_modules/moment -> /Users/aid/Desktop/local-packages/moment
Questo è fondamentalmente dicendo “Quando sto puntando a node_modules per il momento, root ai tuoi collegamenti npm, per questa versione di node — e punto a questa versione / pacchetto locale di esso”.
Ora possiamo eseguire la nostra app:
Sputa fuori la console.registri / modifiche apportate localmente.
Per eliminare il collegamento, tornare alla versione locale e digitare root npm unlink --no-save moment
. Quindi eseguire npm install
.
Yay per i collegamenti NPM. Evviva per Des Lynham.