VPN-i ühendamine ei peaks tähendama npm-i registriseade muutmist kaks korda päevas. Projektitasemel konfiguratsioonifailis olev ulatusekirje saab saata ettevõtte paketid ühte registrisse ja kõik muu avalikku, ilma ümberlülitamisteta ja ilma reedel pärastlõunal maha jäänud alistamiseta. Konks on selles, et see lahendab ainult nimetamise; marsruutimine, volitused ja konfiguratsiooni tähtsusjärjekord on kolm eraldi asja, millest igaüks ebaõnnestub omamoodi.

Kaks nime, kaks sihtkohta

npm-i paketinimel on kas ulatus või seda ei ole. Ulatusega nimi algab @-märgist ja ulatuse identifikaatorist ning just selle identifikaatori saab konfiguratsioon kaardistada. Miski muu paketi juures ei ole kaardistamise jaoks oluline. Register ei näe kunagi päringut selle põhjal, kas pakett on sisemine või avalik; see näeb ainult nime.

Nii väljendab allolev fail kolmel real kahte kavatsust: avalikud paketid lähevad avalikku registrisse ja ettevõtte ulatuse alla kuuluvad paketid lähevad ettevõtte registrisse selle hosti jaoks mõeldud tokeniga.

registry=https://registry.npmjs.org/
@acme:registry=https://packages.corp.example/
//packages.corp.example/:_authToken=${NPM_TOKEN}

Asendage ulatus, host ja muutuja nimi sellega, mida organisatsioon tegelikult pakub. Oluline on struktuur, mitte näidisväärtused. Kaks konfiguratsioonirida kannavad kogu poliitikat, mistõttu tasub neid mõista, mitte kopeerida.

Hoidke kaardistamine ja võrk peas eraldi lahtrites. Ulatusekirje ei saa muuta kättesaamatut hosti kättesaadavaks ja töötav tunnel ei saa öelda npm-ile, millisesse registrisse pakett kuulub.

Kirjutage fail õiges järjekorras

Pange projektifail oma mõttekäigus esimeseks, kuigi npm loeb mitut faili. Projektikataloogis olev .npmrc on see, mille teie kolleegid repositooriumi kaudu pärandavad, seega peaks see väljendama ühist poliitikat, mitte teie isiklikku tokenit. See fail on ka see, mida ülevaataja loeb. Hoidke see piisavalt väike, et seda ühe pilguga üle vaadata.

Jätke vaikimisi registry rida osutama avalikule registrile, kui organisatsioon ei ole otsustanud teisiti. Selle eemaldamine muudab masina sõltuvaks sellest, mida ütleb kasutajatasemel fail, ja see on täpselt selline kaudne sõltuvus, mis annab kahes sülearvutis erinevaid tulemusi.

Ulatuserea ei ole metamärk. Väljaspool ulatust olev nimi kasutab edasi vaikeväärtust ja see on käitumine, mida soovite iga sõltuvuse puhul, mida te ise ei kirjutanud.

Kontrollige, milleks fail laheneb, enne kui selle kinnitate, kasutades tõelise paigalduse asemel ühekordset paketinime, et viga ei maksaks midagi.

Volitused kuuluvad hostile, mitte projektile

Autentimiskirjed on seotud registri hostiga ja seal, kus register seda vajab, teega. Sellepärast algab tokeni rida topeltkaldkriipsu ja hostiga, mitte ulatusega. Kui näete hosti selles positsioonis, lakkab rea ülejäänud osa paistmast suvalise kirjavahemärgistusena. See on aadress ja token on selle külge kinnitatud.

Keskkonnamuutuja kasutamine hoiab sõnasõnalise tokeni repositooriumi failist väljas. See ei muuda tokenit kõikjal nähtamatuks; see ilmub endiselt protsessi keskkonda ja konfiguratsiooni välja printiv käsk võib selle paljastada.

Hankige muutuja mis tahes kohaliku või CI volituste mehhanismi kaudu, mille organisatsioon heaks kiidab, ja ärge kunagi kleepige tõelist tokenit näidisesse, mida võidakse dokumentatsiooni kopeerida.

Kui mängus on kaks registrit, saab kumbki oma kirje. Üksik kvalifitseerimata tokeni seade on parimal juhul mitmetähenduslik ja halvimal juhul saadetud vale hosti juurde.

Kui võidab vale register

Konfiguratsioon on kihiline ja kehtiv väärtus ei ole tingimata väärtus failis, mida te just muutsite. Projekti seaded, kasutaja seaded, globaalsed seaded ja keskkonnamuutujad osalevad kõik. See kihilisus on põhjus, miks parandus töötab teie masinas, aga mitte kolleegi konteineris. See on ka põhjus, miks tasub kehtiv väärtus enne vaidlemist välja printida.

Keskkonnamuutuja on CI-s tavaline süüdlane, kus töö seab registri üks kord ja iga järgnev samm pärib selle. Teine kõige levinum on arendaja masinas kasutajatasemel fail, mis alistab selle, mida repositoorium ütleb.

Printige kehtiv konfiguratsioon ja lahendatud register ühe ulatusega ja ühe ulatuseta nime jaoks enne, kui hakkate midagi muud siluma. Kui need kaks vastust on see, mida ootate, on probleem võrgus; kui ei ole, on probleem konfiguratsioonis ja ükski VPN-töö ei aita.

Kontrollnimekiri enne kinnitamist

Kinnitage, et ulatuse nimi vastab tegelikult avaldatud pakettidele, et vaikeregister on selgesõnaline ja et tokeni rida nimetab õiget hosti. Trükiviga ulatuses tekitab kõige kummalisema tõrke, sest pakett laheneb avalikust registrist ja tagastab kellegi teise samanimelise mooduli. Kontrollige nime enne, kui hakkate tokenit siluma.

Kinnitage, et privaatne register on masinast kättesaadav selles kontekstis, mis paigaldust käivitab, mitte ainult teie brauserist. See erinevus loeb siis, kui puhverserveril või konteineril on teie kestast erinev marsruutimine.

Seejärel kinnitage käitumine puhtal väljavõttel ilma vahemällu salvestatud pakettideta. Värske paigaldus on ainus test, mis näitab, mida uus kolleeg kogeb.

Seotud artiklid