Prisijungimas prie VPN neturėtų reikšti npm registro nustatymo redagavimo du kartus per dieną. Projekto lygmens konfigūracijos failo apimties įrašas gali siųsti įmonės paketus į vieną registrą, o visa kita – į viešą, be perjungimo ir be penktadienio popietę paliktos perrašos. Bėda ta, kad tai išsprendžia tik pavadinimus; maršrutizavimas, prisijungimo duomenys ir konfigūracijos pirmumas yra trys atskiri dalykai, kurių kiekvienas nepavyksta savaip.

Du vardai, dvi paskirties vietos

npm paketo vardas arba turi apimtį, arba ne. Vardas su apimtimi prasideda @ ženklu ir apimties identifikatoriumi, ir būtent tą identifikatorių konfigūracija gali susieti. Niekas kitas pakete nėra svarbus susiejimui. Registras niekada nemato užklausos pagal tai, ar paketas vidinis, ar viešas; jis mato tik vardą.

Todėl žemiau esantis failas trimis eilutėmis išreiškia du ketinimus: vieši paketai eina į viešą registrą, o įmonės apimties paketai eina į įmonės registrą su to prieglobos žetonu.

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

Pakeiskite apimtį, prieglobą ir kintamojo vardą tuo, ką organizacija iš tikrųjų teikia. Svarbi struktūra, o ne pavyzdinės reikšmės. Dvi konfigūracijos eilutės neša visą politiką, todėl verta jas suprasti, o ne kopijuoti.

Laikykite susiejimą ir tinklą atskiruose skyriuose galvoje. Apimties įrašas negali padaryti nepasiekiamo prieglobos pasiekiamu, o veikiantis tunelis negali pasakyti npm, kuriam registrui priklauso paketas.

Rašykite failą teisinga tvarka

Projekto failą savo samprotavime dėkite pirmuoju, nors npm skaito kelis failus. Projekto kataloge esantis .npmrc yra tas, kurį jūsų kolegos paveldi per saugyklą, todėl jis turėtų išreikšti bendrą politiką, o ne jūsų asmeninį žetoną. Tas failas taip pat yra tas, kurį skaitys recenzentas. Laikykite jį pakankamai mažu, kad būtų galima peržiūrėti vienu žvilgsniu.

Palikite numatytąją registry eilutę nurodančią viešą registrą, nebent organizacija nusprendė kitaip. Ją pašalinus, mašina priklausys nuo to, ką sako naudotojo lygmens failas, ir tai yra būtent ta numanoma priklausomybė, kuri dviejuose nešiojamuose kompiuteriuose duoda skirtingus rezultatus.

Apimties eilutė nėra pakaitos simbolis. Vardas už apimties ribų toliau naudoja numatytąją reikšmę, ir tai yra elgsena, kurios norite kiekvienai priklausomybei, kurios neparašėte patys.

Prieš įtraukdami failą patikrinkite, į ką jis išsisprendžia, naudodami vienkartinį paketo vardą vietoj tikros instaliacijos, kad klaida nieko nekainuotų.

Prisijungimo duomenys priklauso prieglobai, o ne projektui

Tapatybės nustatymo įrašai susieti su registro priegloba ir, kur registro reikia, su keliu. Štai kodėl žetono eilutė prasideda dvigubu pasviruoju brūkšniu ir priegloba, o ne apimtimi. Kai pamatote prieglobą toje vietoje, likusi eilutės dalis nustoja atrodyti kaip savavališka skyryba. Tai adresas, ir žetonas prie jo prijungtas.

Aplinkos kintamojo naudojimas laiko pažodinį žetoną už saugyklos failo ribų. Tai nepadaro žetono nematomo visur; jis vis dar pasirodo proceso aplinkoje, o konfigūraciją spausdinanti komanda gali jį atskleisti.

Užtikrinkite kintamąjį bet kokiu vietiniu ar CI prisijungimo duomenų mechanizmu, kurį organizacija patvirtina, ir niekada neįklijuokite tikro žetono į pavyzdį, kuris gali būti nukopijuotas į dokumentaciją.

Jei žaidime du registrai, kiekvienas gauna savo įrašą. Vienas nekvalifikuotas žetono nustatymas geriausiu atveju yra dviprasmis, o blogiausiu – išsiųstas netinkamam prieglobai.

Kai laimi netinkamas registras

Konfigūracija yra sluoksniuota, o galiojanti reikšmė nebūtinai yra reikšmė faile, kurį ką tik redagavote. Projekto nustatymai, naudotojo nustatymai, visuotiniai nustatymai ir aplinkos kintamieji visi dalyvauja. Šis sluoksniavimas yra priežastis, kodėl pataisa veikia jūsų mašinoje, bet ne kolegos konteineryje. Tai taip pat priežastis, kodėl verta atspausdinti galiojančią reikšmę prieš apie ją ginčijantis.

Aplinkos kintamasis yra įprastas kaltininkas CI, kur užduotis vieną kartą nustato registrą ir kiekvienas vėlesnis žingsnis jį paveldi. Antras pagal dažnumą yra naudotojo lygmens failas kūrėjo mašinoje, kuris perrašo tai, ką sako saugykla.

Atspausdinkite galiojančią konfigūraciją ir išspręstą registrą vienam vardui su apimtimi ir vienam be apimties prieš taisydami ką nors kita. Jei šie du atsakymai yra tai, ko tikitės, problema yra tinklas; jei ne, problema yra konfigūracija ir joks VPN darbas nepadės.

Kontrolinis sąrašas prieš įtraukiant

Patvirtinkite, kad apimties vardas atitinka iš tikrųjų paskelbtus paketus, kad numatytasis registras yra aiškus ir kad žetono eilutė nurodo teisingą prieglobą. Rašybos klaida apimtyje sukelia keisčiausią gedimą, nes paketas išsisprendžia iš viešo registro ir grąžina kito asmens to paties pavadinimo modulį. Patikrinkite vardą prieš taisydami žetoną.

Patvirtinkite, kad privatus registras pasiekiamas iš mašinos tame kontekste, kuris vykdo instaliaciją, o ne tik iš jūsų naršyklės. Šis skirtumas svarbus, kai tarpinis serveris ar konteineris turi kitokį maršrutizavimą nei jūsų apvalkalas.

Tada patvirtinkite elgseną švarioje ištraukoje be talpykloje esančių paketų. Nauja instaliacija yra vienintelis bandymas, parodantis, ką patirs naujas kolega.

Susiję straipsniai