npm-д реестрийг VPN-ээр биш, багцын хүрээгээр сонгуул
Хүрээний бичлэг компанийн багцуудыг хувийн реестрт илгээж, бусад бүгдийг нээлттэй үлдээнэ. Чиглүүлэлт, итгэмжлэл, давуу эрх нь өөр гурван шийдвэр.
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 ажил тус болохгүй.
Батлахаас өмнөх шалгах хуудас
Хүрээний нэр бодитоор нийтлэгдсэн багцуудтай таарч байгаа, анхдагч реестр тодорхой, токен мөр зөв хост нэрийг дурдаж байгааг батал. Хүрээнд гарсан үсгийн алдаа нь хамгийн хачин бүтэлгүйтлийг үүсгэдэг, учир нь багц нээлттэй реестрээс шийдэгдэж, ижил нэртэй өөр хүний модулийг буцаадаг. Токеныг дибаг хийхээс өмнө нэрийг шалга.
Хувийн реестр нь суулгалтыг гүйцэтгэж буй контекст дэх машинаас хүртээмжтэй, зөвхөн таны хөтчөөс биш гэдгийг батал. Прокси эсвэл контейнер таны бүрхүүлээс өөр чиглүүлэлттэй үед энэ ялгаа чухал.
Дараа нь кэшлэгдсэн багцгүй цэвэр шалгалтад зан төлөвийг батал. Шинэ суулгалт нь шинэ хамт олон юу туулна гэдгийг харуулдаг цорын ганц шалгалт.