VPN සම්බන්ධ කිරීම යනු දිනකට දෙවරක් npm හි registry සැකසුම සංස්කරණය කිරීම නොවිය යුතුය. ව්‍යාපෘති මට්ටමේ වින්‍යාස ගොනුවක ඇති scope සටහනකට සමාගම් පැකේජ එක් registry එකකට ද අනෙක් සියල්ල පොදු එකට ද යැවිය හැක; මාරු කිරීමක් නැතිව සහ සිකුරාදා සවසක ඉතිරි වන override එකක් නැතිව. ගැටලුව නම් මෙය නම් කිරීම පමණක් විසඳන බවයි; routing, credentials සහ වින්‍යාස precedence යනු එකිනෙකට වෙනස් ලෙස අසාර්ථක වන වෙනස් කරුණු තුනකි.

නම් දෙකක්, ගමනාන්ත දෙකක්

npm පැකේජ නාමයකට scope එකක් ඇත්තේ හෝ නැත. scope සහිත නාමයක් at-sign එකකින් සහ scope හඳුනාගැනීමකින් ආරම්භ වන අතර, වින්‍යාසයට සිතියම් කළ හැක්කේ එම හඳුනාගැනීමයි. සිතියම්කරණයට පැකේජයේ වෙන කිසිවක් වැදගත් නොවේ. පැකේජය අභ්‍යන්තර ද පොදු ද යන්න මත පදනම්ව registry කිසිදා ඉල්ලීමක් නොදකී; එය දකින්නේ නමක් පමණි.

එබැවින් පහත ගොනුව පේළි තුනකින් අදහස් දෙකක් ප්‍රකාශ කරයි: පොදු පැකේජ පොදු registry එකට යයි, සමාගම් scope යටතේ ඇති පැකේජ එම host එක සඳහා token එකක් සමඟ සමාගම් registry එකට යයි.

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

scope, host සහ විචල්‍ය නාමය සංවිධානය සැබවින්ම සපයන දෙයින් ප්‍රතිස්ථාපනය කරන්න. වැදගත් වන්නේ ව්‍යුහය මිස උදාහරණ අගයන් නොවේ. වින්‍යාස පේළි දෙකක් මුළු ප්‍රතිපත්තියම දරයි, එබැවින් ඒවා පිටපත් කිරීමට වඩා තේරුම් ගැනීම වටී.

සිතියම්කරණය සහ ජාලය ඔබේ හිතේ වෙන් වෙන් කොටස්වල තබා ගන්න. scope සටහනකට ළඟා විය නොහැකි host එකක් ළඟා විය හැකි එකක් කළ නොහැක, වැඩ කරන tunnel එකකට npm ට පැකේජයක් කුමන registry එකට අයත් දැයි කිව නොහැක.

ගොනුව නිවැරදි අනුපිළිවෙලින් ලියන්න

npm ගොනු කිහිපයක් කියවන නමුත් ඔබේ තර්කයේ මුලට ව්‍යාපෘති ගොනුව තබන්න. ව්‍යාපෘති නාමාවලියේ ඇති .npmrc යනු ඔබේ සගයන් repository හරහා උරුම කර ගන්නා ගොනුවයි, එබැවින් එය ඔබේ පෞද්ගලික token එකට වඩා හවුල් ප්‍රතිපත්තිය ප්‍රකාශ කළ යුතුය. එම ගොනුවම සමාලෝචකයෙකු කියවන ගොනුව ද වේ. එක බැල්මකින් සමාලෝචනය කළ හැකි තරම් කුඩාවට එය තබා ගන්න.

සංවිධානය වෙනත් ලෙස තීරණය කර නොමැති නම් පෙරනිමි registry පේළිය පොදු registry එකට යොමු කර තබන්න. එය ඉවත් කිරීමෙන් යන්ත්‍රය පරිශීලක මට්ටමේ ගොනුව කියන දෙය මත රඳා පවතී, එය ලැප්ටොප් දෙකක වෙනස් ප්‍රතිඵල ඇති කරන ආකාරයේ ව්‍යංග්‍ය රඳාපැවැත්මකි.

scope පේළිය wildcard එකක් නොවේ. scope එකෙන් පිටත නාමයක් පෙරනිමි අගය භාවිත කරමින් සිටියි, එය ඔබම නොලියූ සෑම යැපීමකටම ඔබට අවශ්‍ය හැසිරීමයි.

commit කිරීමට පෙර ගොනුව කුමකට විසඳෙනවාදැයි පරීක්ෂා කරන්න, සැබෑ ස්ථාපනයක් වෙනුවට භාවිතයෙන් ඉවත් කරන පැකේජ නාමයක් භාවිත කරමින්, එවිට වැරැද්දකට කිසිදු වියදමක් නැත.

credentials අයත් වන්නේ ව්‍යාපෘතියකට නොව host එකකටය

සත්‍යාපන සටහන් registry host එකකට සහ, registry එය අවශ්‍ය වන විට, මාර්ගයකට යතුරු කර ඇත. එබැවින් token පේළිය scope එකට වඩා ද්විත්ව slash එකෙන් සහ host එකෙන් ආරම්භ වේ. එම තැනෙහි host එක දුටු පසු, පේළියේ ඉතිරිය අත්තනෝමතික විරාම ලකුණු ලෙස පෙනෙනු නැත. එය ලිපිනයක්, සහ token එයට අමුණා ඇත.

පරිසර විචල්‍යයක් භාවිත කිරීමෙන් සැබෑ token එක repository හි ගොනුවෙන් පිටත තබා ගනී. එය token එක සෑම තැනකම අදෘශ්‍යමාන නොකරයි; එය තවමත් ක්‍රියාවලි පරිසරයේ දිස් වන අතර, වින්‍යාසය මුද්‍රණය කරන විධානයකට එය හෙළි කළ හැක.

සංවිධානය අනුමත කරන ඕනෑම දේශීය හෝ CI credentials ක්‍රමවේදයක් හරහා විචල්‍යය සපයන්න, සහ ලේඛනවලට පිටපත් විය හැකි උදාහරණයකට සැබෑ token එකක් කිසිදා අලවන්න එපා.

registry දෙකක් ක්‍රියාත්මක නම්, එක් එක් එකට තමන්ගේම සටහනක් ලැබේ. තනි නුසුදුසු token සැකසුමක් හොඳම අවස්ථාවේ අපැහැදිලි වන අතර නරකම අවස්ථාවේ වැරදි host එකට යවනු ලැබේ.

වැරදි registry එක ජය ගන්නා විට

වින්‍යාසය ස්ථරවලින් යුක්තය, සහ බලපැවැත්වෙන අගය ඔබ දැන් සංස්කරණය කළ ගොනුවේ අගය නොවිය හැක. ව්‍යාපෘති සැකසුම්, පරිශීලක සැකසුම්, ගෝලීය සැකසුම් සහ පරිසර විචල්‍ය සියල්ලම සහභාගී වේ. එම ස්ථරකරණය නිසාම යම් නිවැරදි කිරීමක් ඔබේ යන්ත්‍රයේ වැඩ කර සගයෙකුගේ container එකේ වැඩ නොකරයි. එසේම එය නිසාම ඒ ගැන තර්ක කිරීමට පෙර බලපැවැත්වෙන අගය මුද්‍රණය කිරීම වටී.

CI හි සුපුරුදු වැරදිකරු වන්නේ පරිසර විචල්‍යයකි; එහි job එකක් registry එකක් එක් වරක් සකසන අතර පසුව එන සෑම පියවරක්ම එය උරුම කර ගනී. දෙවන වඩාත් පොදු හේතුව වන්නේ repository කියන දෙය override කරන සංවර්ධකයෙකුගේ යන්ත්‍රයේ පරිශීලක මට්ටමේ ගොනුවකි.

වෙනත් කිසිවක් debug කිරීමට පෙර scope සහිත නාමයක් සහ scope රහිත නාමයක් සඳහා බලපැවැත්වෙන වින්‍යාසය සහ විසඳන ලද registry එක මුද්‍රණය කරන්න. එම පිළිතුරු දෙක ඔබ බලාපොරොත්තු වන දේ නම්, ගැටලුව ජාලයයි; එසේ නොවේ නම්, ගැටලුව වින්‍යාසයයි සහ කොපමණ VPN වැඩ කළත් උදව් වන්නේ නැත.

commit කිරීමට පෙර පරීක්ෂණ ලැයිස්තුව

scope නාමය සැබවින්ම ප්‍රකාශිත පැකේජ සමඟ ගැලපෙන බවත්, පෙරනිමි registry එක පැහැදිලි බවත්, token පේළිය නිවැරදි host එක නම් කරන බවත් තහවුරු කරන්න. scope හි අකුරු දෝෂයක් සියල්ලටම වඩා අමුතු අසාර්ථකත්වයක් ඇති කරයි, මන්ද පැකේජය පොදු registry එකෙන් විසඳී එම නමම ඇති වෙනත් කෙනෙකුගේ module එකක් ලබා දෙයි. token එක debug කිරීමට පෙර නාමය පරීක්ෂා කරන්න.

private registry එක ඔබේ බ්‍රවුසරයෙන් පමණක් නොව, ස්ථාපනය ධාවනය කරන සන්දර්භයේ යන්ත්‍රයෙන් ළඟා විය හැකි බව තහවුරු කරන්න. proxy එකකට හෝ container එකකට ඔබේ shell එකට වඩා වෙනස් routing ඇති විට එම වෙනස වැදගත් වේ.

ඉන්පසු cache කළ පැකේජ නොමැති පිරිසිදු checkout එකක හැසිරීම තහවුරු කරන්න. නව සගයෙකු අත්දකින දේ පෙන්වන එකම පරීක්ෂණය නැවුම් ස්ථාපනයයි.

අදාළ ලිපි