自主開發的一些套件或是客製化修改版,若不想放到公開 npm 的官方網站上的話,使用 Verdaccio 這個私有化的 NPM Repository 便可達成需求。指令多半都是使用 npm 的,上手難度並不高。
安裝步驟
1. 為了方便日後的管理,這邊直接使用 docker 來進行安裝,並配合 docker-compose 來進行相依性的設定。
程式碼
2. 將上述的程式碼放到遠端根目錄下的一個名為 verdaccio 的資料夾 ( 沒有請自行新增 )
3. verdaccio 資料夾內,要另外新增兩個資料夾 – conf 和 storage
4. 新增存取權限:如 chown -R 10001:65533 /verdaccio/storage
5. 執行 docker-compose up,預設內外開啟的 port 為 4873
6. 在網址列輸入 http://<遠端ip位置>:4873
7. 接著你會看到以下畫面,那就表示你已經成功安裝並執行
增加使用者、發布套件
1. 使用 npm addUser –registry http://<遠端ip位置>:4873 的指令來註冊一個使用者,僅需登入一次,之後可使用 npm logout 來登出
2. npm publish –registry http://<遠端ip位置>:4873 來發布你的套件
移除套件
1. npm unpublish <套件名稱> –registry http://<遠端ip位置>:4873 –force 來強制從遠端移除你的套件,不過有一定的機會失敗。( 因為關聯的 Dependency 不會完全刪掉 )。建議可直接到 /verdaccio/storage/data 內將套件給移除,並更改 .verdaccio-db.json 的內容 – 將 list 的 array 裡面的套件名稱給刪除
.npmrc
若你不想每一次輸入 npm 指令時,都得加上如 –registry http://<遠端ip位置>:4873 的參數,那你可以先在要使用這個私有目錄的專案內,新增一個 .npmrc 檔。這樣一來預設便會從你指定的遠端路徑去找,若沒有才會轉到 npm 官方。
參考資料
1. verdaccio/verdaccio
2. Day 27 – 三周目 – 五分鐘建立私有 NPM: verdaccio
3. What is Verdaccio?
4. Remove a published package
5. 使用docker+verdaccio搭建npm私有库