VPN pievienošanai nevajadzētu nozīmēt npm reģistra iestatījuma rediģēšanu divas reizes dienā. Projekta līmeņa konfigurācijas faila tvēruma ieraksts var sūtīt uzņēmuma pakotnes uz vienu reģistru, bet visu pārējo uz publisko, bez pārslēgšanas un bez piektdienas pēcpusdienā atstātas pārrakstīšanas. Ķibele ir tajā, ka tas atrisina tikai nosaukšanu; maršrutēšana, akreditācijas dati un konfigurācijas prioritāte ir trīs atsevišķas lietas, no kurām katra neizdodas savā veidā.

Divi nosaukumi, divi galamērķi

npm pakotnes nosaukumam vai nu ir tvērums, vai nav. Nosaukums ar tvērumu sākas ar @ zīmi un tvēruma identifikatoru, un tieši šo identifikatoru konfigurācija var kartēt. Nekas cits pakotnē nav svarīgs kartēšanai. Reģistrs nekad neredz pieprasījumu pēc tā, vai pakotne ir iekšēja vai publiska; tas redz tikai nosaukumu.

Tāpēc zemāk esošais fails trīs rindās izsaka divus nodomus: publiskās pakotnes iet uz publisko reģistru, bet pakotnes uzņēmuma tvērumā iet uz uzņēmuma reģistru ar žetonu šim resursdatoram.

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

Aizstājiet tvērumu, resursdatoru un mainīgā nosaukumu ar to, ko organizācija faktiski nodrošina. Svarīga ir struktūra, nevis piemēra vērtības. Divas konfigurācijas rindas nes visu politiku, tāpēc ir vērts tās saprast, nevis kopēt.

Turiet kartēšanu un tīklu atsevišķos nodalījumos galvā. Tvēruma ieraksts nevar padarīt nesasniedzamu resursdatoru sasniedzamu, un strādājošs tunelis nevar pateikt npm, kuram reģistram pakotne pieder.

Rakstiet failu pareizā secībā

Projekta failu savā spriedumā lieciet pirmo, lai gan npm lasa vairākus failus. .npmrc projekta direktorijā ir tas, ko jūsu kolēģi manto caur repozitoriju, tāpēc tam jāizsaka kopīgā politika, nevis jūsu personīgais žetons. Šis fails ir arī tas, ko lasīs recenzents. Turiet to pietiekami mazu, lai to varētu pārskatīt vienā acu uzmetienā.

Atstājiet noklusējuma registry rindu norādītu uz publisko reģistru, ja vien organizācija nav nolēmusi citādi. Tās noņemšana padara mašīnu atkarīgu no tā, ko saka lietotāja līmeņa fails, un tā ir tieši tāda netieša atkarība, kas divos portatīvajos datoros dod atšķirīgus rezultātus.

Tvēruma rinda nav aizstājējzīme. Nosaukums ārpus tvēruma turpina izmantot noklusējumu, un tā ir uzvedība, ko vēlaties katrai atkarībai, kuru neesat rakstījis pats.

Pirms faila iesniegšanas pārbaudiet, uz ko tas atrisinās, izmantojot vienreizēju pakotnes nosaukumu īstas instalācijas vietā, lai kļūda neko nemaksātu.

Akreditācijas dati pieder resursdatoram, nevis projektam

Autentifikācijas ieraksti ir piesaistīti reģistra resursdatoram un, kur reģistram tas nepieciešams, ceļam. Tāpēc žetona rinda sākas ar dubulto slīpsvītru un resursdatoru, nevis tvērumu. Kad redzat resursdatoru šajā pozīcijā, rindas atlikusī daļa pārstāj izskatīties kā patvaļīga interpunkcija. Tā ir adrese, un žetons ir tam pievienots.

Vides mainīgā izmantošana tur burtisko žetonu ārpus repozitorija faila. Tas nepadara žetonu neredzamu visur; tas joprojām parādās procesa vidē, un komanda, kas izdrukā konfigurāciju, var to atklāt.

Nodrošiniet mainīgo ar jebkuru vietējo vai CI akreditācijas datu mehānismu, ko organizācija apstiprina, un nekad neielīmējiet īstu žetonu piemērā, ko varētu kopēt dokumentācijā.

Ja spēlē ir divi reģistri, katrs iegūst savu ierakstu. Viens nekvalificēts žetona iestatījums labākajā gadījumā ir divdomīgs, bet sliktākajā – nosūtīts nepareizajam resursdatoram.

Kad uzvar nepareizais reģistrs

Konfigurācija ir slāņaina, un spēkā esošā vērtība ne vienmēr ir vērtība failā, kuru tikko rediģējāt. Projekta iestatījumi, lietotāja iestatījumi, globālie iestatījumi un vides mainīgie visi piedalās. Šī slāņošana ir iemesls, kāpēc labojums strādā jūsu mašīnā, bet ne kolēģa konteinerā. Tas ir arī iemesls, kāpēc ir vērts izdrukāt spēkā esošo vērtību pirms strīdēšanās par to.

Vides mainīgais ir ierastais vaininieks CI, kur darbs vienreiz iestata reģistru un katrs nākamais solis to manto. Otrais biežākais ir lietotāja līmeņa fails izstrādātāja mašīnā, kas pārraksta to, ko saka repozitorijs.

Izdrukājiet spēkā esošo konfigurāciju un atrisināto reģistru vienam nosaukumam ar tvērumu un vienam bez tvēruma pirms kaut kā cita atkļūdošanas. Ja šīs divas atbildes ir tas, ko gaidāt, problēma ir tīklā; ja nav, problēma ir konfigurācijā, un nekāds VPN darbs nepalīdzēs.

Kontrolsaraksts pirms iesniegšanas

Pārliecinieties, ka tvēruma nosaukums atbilst faktiski publicētajām pakotnēm, ka noklusējuma reģistrs ir skaidri norādīts un ka žetona rinda nosauc pareizo resursdatoru. Iespiešanas kļūda tvērumā rada visdīvaināko kļūmi, jo pakotne atrisinās no publiskā reģistra un atgriež kāda cita tāda paša nosaukuma moduli. Pārbaudiet nosaukumu pirms žetona atkļūdošanas.

Pārliecinieties, ka privātais reģistrs ir sasniedzams no mašīnas tajā kontekstā, kas izpilda instalāciju, ne tikai no jūsu pārlūka. Šī atšķirība ir svarīga, ja starpniekserverim vai konteineram ir citāda maršrutēšana nekā jūsu čaulai.

Pēc tam pārliecinieties par uzvedību tīrā izrakstā bez kešatmiņā saglabātām pakotnēm. Svaiga instalācija ir vienīgais tests, kas parāda, ko piedzīvos jauns kolēģis.

Saistītie raksti