工作筆記:GitLab monorepo package registry/install

提醒:

  1. 完整教學請參考官方文件 npm packages in the package registry,這篇主要是給未來的我的懶人包 🌚
  2. 雖然發布套件的指令是 npm publish,但「將套件發布到 GitLab」的關鍵字是 package registry,故搜尋時推薦餵 GitLab package registry 而不是 GitLab package publish

將套件發布到私人 GitLab

假設一個叫 @my-repo 的 monorepo 結構如下:

libs
  tool1
  tool2
apps
  service1
  service2

而我的目的是「只將 @my-repo/tool1 發佈到私人 GitLab」,那麽流程會是:

  1. @my-repo 的根目錄位置新增 .npmrc
  2. @my-repo/tool1package.json 設定 publishConfig.registry
  3. @my-repo/tool1 (即 libs/tool1 這個資料夾)的位置執行 npm publish

第一步的 .npmrc 內容如下:

//<domain_name>/api/v4/projects/<project_id>/packages/npm/:_authToken=<your_auth_token>

第二步的 package.json 設定如下:

{
  "publishConfig": {
    "registry": "https://<domain_name>/api/v4/projects/<project_id>/packages/npm/"
  }
}

<domain_name><project_id> 的替換規則如前述。

安裝來自私人 GitLab 的套件

記得要在專案根目錄新增 .npmrc 並填入以下內容:

<package_name>:registry=https://<domain_name>/api/v4/projects/<project_id>/packages/npm/
//<domain_name>/api/v4/projects/<project_id>/packages/npm/:_authToken=<your_auth_token>

參考文件