<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          npm私服搭建

          共 2458字,需瀏覽 5分鐘

           ·

          2021-11-03 16:32

          如何搭建 npm 私服?

          npm私服搭建工具不多,主要有三個(gè):Verdaccio、sinopia、nexus。


          Verdaccio

          號(hào)稱零配置的私服,直接用 node 啟動(dòng)就行,還提供 docker 版本。體驗(yàn)下來(lái),我覺(jué)得好處就是安裝特別省事,無(wú)需太關(guān)注復(fù)雜的技術(shù),也可以不用太配置,還帶有個(gè)簡(jiǎn)潔的 UI 頁(yè)面。單純是 npm 私服的話,我認(rèn)為用它非常適合。而且體驗(yàn)和 npm 官網(wǎng)非常類似,支持的 npm 語(yǔ)法也非常好。


          sinopia

          一樣號(hào)稱零配置的私服,整體和 Verdaccio 差不多。

          功能比 Verdaccio 更簡(jiǎn)單,也具有簡(jiǎn)潔的 UI 頁(yè)面。簡(jiǎn)單體驗(yàn)了下,大體也和 Verdaccio 差不多。感覺(jué)就是 Verdaccio 的精簡(jiǎn)版吧。


          Nexus

          非常強(qiáng)大,各個(gè)公司基本上用的都是它!因?yàn)樗梢酝瑫r(shí)處理 maven npm 等私有倉(cāng)庫(kù)。所以為了省事,很多公司就不會(huì)單獨(dú)再部署其他私服了。





          下面是Nexus示例:

          官網(wǎng)下載好包后,解壓縮就可以了,以 MacOS為例:

          首先確保服務(wù)器上有 java 環(huán)境,進(jìn)入下載后Nexus目錄后,執(zhí)行腳本啟動(dòng):

          ./nexus-3.28.0-01/bin/nexus start

          啟動(dòng)后訪問(wèn)地址:http://localhost:8081/

          此時(shí)如果你點(diǎn)擊登錄按鈕,會(huì)提示:

          Your admin user password is located in/Users/xxx/Applications/nexus-3.28.0-01-mac/sonatype-work/nexus3/admin.password on the server.

          他告訴了密碼的位置,可以到機(jī)器上查詢下,之后使用 admin 賬號(hào)登錄。

          點(diǎn)擊頂部的設(shè)置按鈕,左側(cè)選擇?Repository?-?Repositories,

          之后選擇 Create repository,可以看到有 npm(proxy) npm(hosted) npm(group)。

          a51b800eddfb5539e3e89f6cddc5036b.webp

          • npm(proxy)就是代理倉(cāng)庫(kù),可以緩存已下載的包,后續(xù)就不用下載了。它只能實(shí)現(xiàn)代理的功能,不能實(shí)現(xiàn)私有包的托管。

          • npm(hosted)就是存儲(chǔ)私有包的倉(cāng)庫(kù),可以允許提交包,但不能實(shí)現(xiàn)代理功能。

          • npm(group)就是將以上兩種倉(cāng)庫(kù)合并下,一個(gè)地址就能實(shí)現(xiàn)代理和私有包托管,免去來(lái)回切換地址的麻煩。


          建立?npm(proxy)

          fcd0e26fec2ac8104991b39b80247f39.webp

          Name隨意,就是區(qū)分。

          Remote storage是遠(yuǎn)程代理地址,官方或者淘寶源https://registry.npmjs.org/,其他都不用管,默認(rèn)就好。

          返回后,可以看到多了當(dāng)前新增記錄,后面有一個(gè)URL copy的按鈕。復(fù)制后就獲得了地址 http://localhost:8081/repository/npm-proxy/。

          通過(guò)此代理 url,可以進(jìn)行訪問(wèn)代理。比如進(jìn)行安裝包,是完全可行的:

          npm?install?xxx?--registry?http://localhost:8081/repository/npm-proxy/


          建立?npm(hosted)

          a8601c7293e12579a243855897e87c2b.webp

          Name 隨意,就是區(qū)分,其他都不用管,默認(rèn)就好。

          返回后,可以看到多了一條npm-hosted記錄。

          復(fù)制地址http://localhost:8081/repository/npm-hosted/。

          這個(gè)地址不能用于代理,比如 [email protected],會(huì)提示找不到對(duì)應(yīng)包。

          此時(shí)你不能通過(guò)npm adduser來(lái)增加賬號(hào),需要通過(guò)nexus來(lái)增加用戶。

          首先要增加一個(gè)npm角色組,我分配了所有npm的權(quán)限,參見(jiàn)如下:

          e701fb1c1fe9d8733ca8c7a32246e121.webp

          然后,新增一個(gè)賬號(hào),參見(jiàn)如下:

          b683847b4718db75112d0697409a8b56.webp

          最后,還要修改Realms,把npm Bearer Token Realm加到右側(cè)激活區(qū):

          2e25b602eec98c69324e30e382aa78d7.webp處理Realms,否則后續(xù)操作可能會(huì)遇到如下錯(cuò)誤:

          Unable?to?authenticate,?need:?BASIC?realm="Sonatype?Nexus?Repository?>?Manager"


          建立好賬號(hào)后,使用以下命令來(lái)進(jìn)行登錄:
          npm?login?--registry?http://localhost:8081/repository/npm-hosted/
          之后可以發(fā)布包了:
          npm publish --registry http://localhost:8081/repository/npm-hosted/

          這個(gè)倉(cāng)庫(kù)地址只能發(fā)布私有包,不能下載其他的公有包。


          建立?npm(group)

          ae973cd58567a68cffaa59bfdd9f6896.webp

          Name 隨意,就是區(qū)分,

          Member repositories,需要選擇已經(jīng)建立好的 2 個(gè) npm 倉(cāng)庫(kù),

          Blob store,表示緩存位置,可以自己在建立一個(gè)存儲(chǔ)區(qū)域,這里用默認(rèn)的,

          其他都不用管,默認(rèn)就好。

          完成后,獲得新的地址:http://localhost:8081/repository/npm-group/。

          使用此地址可以下載公共包,以及發(fā)布私有包。

          但是發(fā)布私有包時(shí)候,會(huì)報(bào)錯(cuò),沒(méi)交錢(qián)的錯(cuò):

          npm ERR! code E403npm ERR! 403 403 Forbidden - PUT http://localhost:8081/repository/npm-group/test          - Deploying to groups is a PRO-licensed feature.            See https://links.sonatype.com/product-nexus-repositorynpm ERR! 403 In most cases, you or one of your dependencies are requestingnpm ERR! 403 a package version that is forbidden by your security policy.


          瀏覽 112
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  69er小视频 | 操逼999| 久久精品视频99 | 请搜索亚洲家庭乱伦 | 99在线精品视频免费观看软件 |