VPN-ге қосылу npm-нің реестр параметрін күніне екі рет өңдеуді білдірмеуі керек. Жоба деңгейіндегі конфигурация файлындағы ауқым жазбасы компания пакеттерін бір реестрге, қалғанын ашық реестрге жібере алады, ауыстырусыз және жұма күні түстен кейін қалып қоятын қайта анықтаусыз. Қиындығы мынада: бұл тек атауды шешеді; маршруттау, тіркелгі деректері және конфигурация басымдығы — әрқайсысы өзінше сәтсіздікке ұшырайтын үш бөлек нәрсе.

Екі атау, екі меже

npm пакетінің атауында ауқым бар немесе жоқ. Ауқымы бар атау @ белгісінен және ауқым идентификаторынан басталады, және конфигурация дәл сол идентификаторды сәйкестендіре алады. Пакеттегі басқа ештеңе сәйкестендіру үшін маңызды емес. Реестр сұранысты пакеттің ішкі немесе ашық екеніне қарай ешқашан көрмейді; ол тек атауды көреді.

Сондықтан төмендегі файл үш жолда екі ниетті білдіреді: ашық пакеттер ашық реестрге барады, ал компания ауқымындағы пакеттер сол хост үшін токенмен компания реестріне барады.

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

Ауқымды, хостты және айнымалы атауын ұйым шын мәнінде ұсынатын нәрсемен ауыстырыңыз. Маңыздысы — құрылым, мысал мәндері емес. Екі конфигурация жолы бүкіл саясатты алып жүреді, сондықтан оларды көшіруден гөрі түсінген жөн.

Сәйкестендіру мен желіні санаңызда бөлек бөліктерде ұстаңыз. Ауқым жазбасы қолжетімсіз хостты қолжетімді ете алмайды, ал жұмыс істеп тұрған туннель npm-ге пакеттің қай реестрге жататынын айта алмайды.

Файлды дұрыс ретпен жазыңыз

npm бірнеше файлды оқыса да, пайымдауыңызда жоба файлын бірінші қойыңыз. Жоба каталогындағы .npmrc — әріптестеріңіз репозиторий арқылы мұраға алатын файл, сондықтан ол жеке токеніңізді емес, ортақ саясатты білдіруі керек. Сол файлды шолушы да оқиды. Оны бір қараумен шолуға болатындай шағын ұстаңыз.

Ұйым өзгеше шешім қабылдамаса, әдепкі registry жолын ашық реестрге сілтеп қалдырыңыз. Оны жою машинаны пайдаланушы деңгейіндегі файл айтқанға тәуелді етеді, ал бұл екі ноутбукта әртүрлі нәтиже беретін дәл сол жасырын тәуелділік.

Ауқым жолы — джокер емес. Ауқымнан тыс атау әдепкіні қолдануды жалғастырады, және өзіңіз жазбаған әрбір тәуелділік үшін керегі осы мінез-құлық.

Файлды тапсырмас бұрын оның неге шешілетінін тексеріңіз, нақты орнатудың орнына бір реттік пакет атауын қолданып, қате ештеңеге тұрмасын.

Тіркелгі деректері жобаға емес, хостқа тиесілі

Аутентификация жазбалары реестр хостіне және реестр қажет еткен жерде жолға байланыстырылады. Сондықтан токен жолы ауқымнан емес, қосарланған қиғаш сызық пен хосттан басталады. Хостты сол орында көрген соң, жолдың қалғаны кездейсоқ тыныс белгілеріне ұқсамайды. Бұл — мекенжай, ал токен оған тіркелген.

Орта айнымалысын қолдану сөзбе-сөз токенді репозиторийдегі файлдан тыс ұстайды. Бұл токенді барлық жерде көрінбейтін етпейді; ол процестің ортасында әлі де көрінеді, ал конфигурацияны басатын команда оны аша алады.

Айнымалыны ұйым мақұлдаған кез келген жергілікті немесе CI тіркелгі механизмі арқылы қамтамасыз етіңіз, және нақты токенді құжаттамаға көшірілуі мүмкін мысалға ешқашан қыстырмаңыз.

Егер ойында екі реестр болса, әрқайсысы өз жазбасын алады. Бір ғана біліксіз токен параметрі ең жақсы жағдайда екіұшты, ең нашар жағдайда қате хостқа жіберілген.

Қате реестр жеңгенде

Конфигурация қабатты, ал қолданыстағы мән сіз жаңа өңдеген файлдағы мән бола бермейді. Жоба параметрлері, пайдаланушы параметрлері, ғаламдық параметрлер және орта айнымалылары бәрі қатысады. Осы қабаттылық салдарынан түзету сіздің машинаңызда жұмыс істеп, әріптесіңіздің контейнерінде істемейді. Сол себепті де тиімді мәнді талқыламас бұрын басып шығарған жөн.

Орта айнымалысы CI-де әдеттегі кінәлі: жұмыс реестрді бір рет орнатады, ал кейінгі әрбір қадам оны мұраға алады. Екінші жиі кездесетіні — әзірлеушінің машинасындағы пайдаланушы деңгейіндегі файл, ол репозиторий айтқанды қайта анықтайды.

Кез келген басқа нәрсені жөндеуге кіріспес бұрын бір ауқымды және бір ауқымсыз атау үшін тиімді конфигурация мен шешілген реестрді басып шығарыңыз. Егер бұл екі жауап күткеніңіздей болса, мәселе желіде; болмаса, мәселе конфигурацияда және VPN-мен қанша жұмыс істесеңіз де көмектеспейді.

Тапсыру алдындағы тексеру тізімі

Ауқым атауы шын мәнінде жарияланған пакеттерге сәйкес келетінін, әдепкі реестр айқын көрсетілгенін және токен жолы дұрыс хостты атайтынын растаңыз. Ауқымдағы қате басу ең оғаш сәтсіздікті тудырады, өйткені пакет ашық реестрден шешіліп, сол атаудағы басқа біреудің модулін қайтарады. Токенді жөндеуден бұрын атауды тексеріңіз.

Жеке реестрге орнатуды орындайтын контекстегі машинадан қол жеткізуге болатынын растаңыз, тек браузеріңізден емес. Бұл айырмашылық прокси немесе контейнердің маршруттауы сіздің қабығыңыздан өзгеше болғанда маңызды.

Содан кейін кэштелген пакеттерсіз таза тексеруде мінез-құлықты растаңыз. Жаңа орнату — жаңа әріптестің не сезінетінін көрсететін жалғыз сынақ.

Қатысты мақалалар