Lat npm velje registeret etter omfanget til pakken, ikkje etter VPN-en
Ein omfangspost sender pakkane til selskapet til eit privat register og lèt alt anna vere offentleg. Ruting, påloggingsdetaljar og forrang er tre avgjerder til.
Å kople til VPN-en bør ikkje tyde at ein redigerer registerinnstillinga til npm to gonger om dagen. Ein omfangspost i ei konfigurasjonsfil på prosjektnivå kan sende pakkane til selskapet til eitt register og alt anna til det offentlege, utan bytting og utan ei overstyring som blir liggjande att ein fredag ettermiddag. Haken er at dette berre løyser namngjevinga; ruting, påloggingsdetaljar og konfigurasjonsforrang er tre separate ting som kvar feilar på sin måte.
To namn, to mål
Eit npm-pakkenamn har anten eit omfang eller ikkje. Eit namn med omfang byrjar med eit at-teikn og ein omfangsidentifikator, og det er den identifikatoren konfigurasjonen kan kartleggje. Ingenting anna ved pakken har noko å seie for kartlegginga. Registeret ser aldri ei førespurnad basert på om pakken er intern eller offentleg; det ser berre eit namn.
Så fila nedanfor uttrykkjer to intensjonar på tre linjer: offentlege pakkar går til det offentlege registeret, og pakkar under omfanget til selskapet går til registeret til selskapet med eit token for den verten.
registry=https://registry.npmjs.org/
@acme:registry=https://packages.corp.example/
//packages.corp.example/:_authToken=${NPM_TOKEN}Byt ut omfanget, verten og variabelnamnet med det organisasjonen faktisk tilbyr. Strukturen er det som tel, ikkje dømeverdiane. To linjer konfigurasjon ber heile policyen, og difor er dei verdt å skjøne i staden for å kopiere.
Hald kartlegginga og nettet i skilde rom i hovudet. Ein omfangspost kan ikkje gjere ein utilgjengeleg vert tilgjengeleg, og ein fungerande tunnel kan ikkje fortelje npm kva register ein pakke høyrer til.
Skriv fila i rett rekkjefølgje
Set prosjektfila først i resonnementet ditt sjølv om npm les fleire filer. Ei .npmrc i prosjektmappa er den kollegaene dine arvar gjennom repositoriet, så ho bør uttrykkje den felles policyen og ikkje din personlege token. Den fila er òg den ein gjennomgåar vil lese. Hald ho lita nok til å bli gjennomgått med eit blikk.
Lat standardlinja registry peike på det offentlege registeret med mindre organisasjonen har bestemt noko anna. Fjernar du ho, blir maskinen avhengig av kva fila på brukarnivå seier, og det er nettopp den typen implisitt avhengigheit som gir ulike resultat på to laptopar.
Omfangslinja er ikkje eit jokerteikn. Eit namn utanfor omfanget brukar framleis standarden, og det er åtferda du vil ha for kvar avhengigheit du ikkje har skrive sjølv.
Sjekk kva fila løyser seg til før du festar ho, med eit eingongspakkenamn i staden for ein ekte installasjon, slik at ein feil ikkje kostar noko.
Påloggingsdetaljar høyrer til ein vert, ikkje eit prosjekt
Autentiseringspostar er knytte til ein registervert og, der registeret treng det, til ein stig. Difor byrjar tokenlinja med den doble skråstreken og verten i staden for omfanget. Når du først ser verten på den plassen, sluttar resten av linja å sjå ut som vilkårleg teiknsetjing. Det er ei adresse, og tokenet er fest til ho.
Å bruke ein miljøvariabel held den bokstavelege tokenen utanfor fila i repositoriet. Det gjer ikkje tokenen usynleg overalt; han dukkar framleis opp i prosessmiljøet, og ein kommando som skriv ut konfigurasjonen kan avdekkje han.
Skaff variabelen gjennom den lokale eller CI-baserte påloggingsmekanismen organisasjonen godkjenner, og lim aldri inn ein ekte token i eit døme som kan bli kopiert til dokumentasjonen.
Viss to register er i spel, får kvart sitt eige oppslag. Éin einaste ukvalifisert tokeninnstilling er i beste fall tvitydig og i verste fall send til feil vert.
Når det gale registeret vinn
Konfigurasjon er lagdelt, og den gjeldande verdien er ikkje nødvendigvis verdien i fila du nettopp redigerte. Prosjektinnstillingar, brukarinnstillingar, globale innstillingar og miljøvariablar deltek alle. Den lagdelinga er grunnen til at ei retting verkar på maskinen din og ikkje i ein container hjå ein kollega. Det er òg grunnen til at den effektive verdien er verdt å skrive ut før du diskuterer han.
Miljøvariabelen er den vanlege syndaren i CI, der ein jobb set registeret éin gong og kvart seinare steg arvar det. Den nest vanlegaste er ei fil på brukarnivå på maskinen til ein utviklar som overstyrer det repositoriet seier.
Skriv ut den effektive konfigurasjonen og det løyste registeret for eitt namn med omfang og eitt utan omfang før du feilsøkjer noko anna. Viss dei to svara er det du ventar, er problemet nettet; viss ikkje, er problemet konfigurasjonen, og ingen VPN-jobb vil hjelpe.
Sjekkliste før du festar fila
Stadfest at omfangsnamnet svarar til pakkane som faktisk er publiserte, at standardregisteret er eksplisitt, og at tokenlinja namngir rett vert. Ein skrivefeil i omfanget gir den merkelegaste feilen av alle, fordi pakken blir løyst frå det offentlege registeret og returnerer modulen til nokon andre med same namn. Sjekk namnet før du feilsøkjer tokenen.
Stadfest at det private registeret er tilgjengeleg frå maskinen i den konteksten som køyrer installasjonen, ikkje berre frå nettlesaren din. Den skilnaden tel når ein proxy eller ein container har anna ruting enn skalet ditt.
Stadfest deretter åtferda på ein rein utsjekk utan hurtigbufra pakkar. Ein fersk installasjon er den einaste testen som viser kva ein ny kollega vil oppleve.