Articles

SLIK KOBLER DU NPM Til en lokal versjon av avhengigheten din

lar gjøre dette.

Så… jeg vil lage en lokal versjon av moment for kalenderen min webapp.

Hvorfor?

Fordi moment inkluderer Ikke Klingon-representasjoner av tid. Eller Borg, for den saks skyld. Hva slags all-inclusive tidspakke omfatter ikke fremmede kulturer!?

TL; DR: klone pakken lokalt et sted, npm installere sine deps,npm link ved roten, og deretter gå tilbake til prangende app som bruker moment, på root type npm link "moment"& du bruker nå den lokale versjonen. Jeg kunne ikke få garnkoblinger til jobb. Ikke sikker på hvorfor.Jeg forlater Garn i denne forklaringen fordi JEG ikke kunne få samme funksjonalitet til å jobbe MED DET SOM NPM. Så uansett, her går:

jeg vil ha to mapper å fokusere på.

my-calendar-app/node_modules/moment

Og

Brukere/aid/desktop/local-modules/

så vil jeggit clone... pakken jeg vil redigere/forbedre, *inn i* local-modules-mappen.

Når jeg er i det, kjører jeg npm install for å sikre at jeg har alle de riktige avhengighetene og config for det (babelrc, webpack, dev og vanlige avhengigheter).

i den lokale går jeg inn i moment.js eller hva inngangsfilen er. Og rett på toppen legger jeg en konsoll.logg inn, bare for å vise at vi bruker den lokale / Klingon-vennlige:

Brukere/hjelp/Skrivebord/local_modules/oyeblikk/oyeblikk.js

cd (i terminal) inn i dine nye, lokale moduler / øyeblikkspakke dir og ved roten skriver du npm link. For å være klar: dette er du knytte en lokal, klonet, litt endret versjon av en npm-pakke.

Så vi har opprettet en indekslink til denne lokale pakken. Terminalbekreftelsen for min ser slik ut:

etter å ha skrevet npm-lenken i den nye, lokale pakken.

naviger nå tilbake til hovedprosjektet ditt, og på rotnivå, fortell det at du vil bruke den lokale versjonen:-

cd /Users/aid/Projects/my-calendar-app && npm link "moment"

som spytter ut en bekreftelse på at du kartlegger til en lokal modul:

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

Det er i utgangspunktet å si «Når Jeg peker på node_modules for øyeblikket, rot til npm-koblingene dine — for denne versjonen av node-og pek på denne lokale versjonen / pakken av den».

nå når vi kjører vår app:

chrome-konsollen / konsollen.logger vises.

det spytter ut konsollen.logger / endringer vi har gjort lokalt.

for å drepe koblingen, gå tilbake til din lokale versjon og ved rottype npm unlink --no-save moment. Kjør deretter npm install.

Yay for npm lenker. Yay For Des Lynham.