Articles

Hoe NPM Link naar een lokale versie van uw afhankelijkheid

Laat dit doen.

So… I want to create a local version of moment for my calendar webapp.

waarom?

omdat moment geen Klingon representaties van tijd bevat. Of Borg, wat dat betreft. Wat voor een all-inclusive tijd pakket omvat geen vreemde culturen!?

De TL; DR: clone het pakket lokaal ergens, NPM installeert zijn deps, npm link bij de root, ga dan terug naar uw flashy app die moment gebruikt, bij root type npm link "moment"& u gebruikt nu de lokale versie. Ik kon niet garen links aan het werk. Ik weet niet waarom.

rechts …

Ik verlaat garen in deze uitleg omdat ik niet dezelfde functionaliteit kon krijgen om ermee te werken als NPM. Dus hoe dan ook, hier gaat:

Ik wil twee mappen om op te focussen.

my-calendar-app/node_modules/moment

en

gebruikers / aid/desktop/local-modules/

dan i git clone... het pakket dat Ik wil bewerken / verbeteren, *in* de map local-modules.

zodra ik daar ben, voer ik npm install uit om er zeker van te zijn dat ik alle juiste afhankelijkheden en config daarvoor heb (babelrc, webpack, Dev en regular afhankelijkheden).

in de lokale, ga ik naar moment.js of wat het invoerbestand ook is. En bovenaan zet ik een console.log in, gewoon om te laten zien dat we de lokale / Klingon-vriendelijke gebruiken:

Users/aid/Desktop/local_modules/moment/moment.js

cd (In terminal) into your new, local modules/moment package dir and at its root, typ npm link. Voor de duidelijkheid: dit is je die een lokale, gekloonde, licht gewijzigde versie van een NPM pakket koppelt.

dus we hebben een index link gemaakt naar dit lokale pakket. De terminal bevestiging voor de mijne ziet er zo uit:

na het typen van NPM link in het nieuwe, lokale pakket.

navigeer nu terug naar uw hoofdproject en vertel het op rootniveau dat u de lokale versie wilt gebruiken:-

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

die een bevestiging uitspuwt dat u een lokale module wilt toewijzen:

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

dat is in principe te zeggen”als ik wijs naar node_modules Voor moment, root naar uw NPM links, voor deze versie van node — en wijs naar deze lokale versie/pakket van het”.

wanneer we nu onze app uitvoeren:

The Chrome console / console.logs verschijnen.

het spuugt de console uit.logs / wijzigingen die we lokaal hebben gemaakt.

om de link te stoppen, ga terug naar uw lokale versie en typ bij root npm unlink --no-save moment. Voer vervolgens npm installuit.

Yay voor NPM-koppelingen. Hoera voor Des Lynham.