使用 bun install 配合 Azure Artifacts npm 登錄檔
Azure Artifacts 是 Azure DevOps 的包管理系統。你可以使用它託管自己的私有 npm 登錄檔以及其他型別的包。
使用 bunfig.toml 設定
要在 bun install 中使用 Azure Artifacts,請在專案中新增一個 bunfig.toml 檔案,內容如下。將 my-azure-devops-org 替換為你的 Azure DevOps 組織名稱,將 my-feed 替換為你的 feed 名稱。如果 feed 的作用範圍是專案級別,URL 還會包含專案名稱:https://pkgs.dev.azure.com/my-azure-devops-org/my-project/_packaging/my-feed/npm/registry/。username 可以是任意非空字串。
[install.registry]
url = "https://pkgs.dev.azure.com/my-azure-devops-org/_packaging/my-feed/npm/registry/"
username = "my-azure-artifacts-user"
# 這裡可以使用環境變數
password = "$NPM_PASSWORD"
然後將你的 Azure Personal Access Token 分配給 NPM_PASSWORD 環境變數。Bun 會自動讀取 .env 檔案,因此請在專案根目錄中建立一個名為 .env 的檔案。不要對令牌進行 base64 編碼;Bun 會為你完成這項工作。
NPM_PASSWORD=<在此貼上令牌>
使用環境變數設定
若要在不使用 bunfig.toml 的情況下設定 Azure Artifacts,請設定 NPM_CONFIG_REGISTRY 環境變數。將 :username=<USERNAME> 和 :_password=<PASSWORD> 附加到 URL,如下所示。將 <USERNAME> 和 <PASSWORD> 替換為你自己的值。
NPM_CONFIG_REGISTRY=https://pkgs.dev.azure.com/my-azure-devops-org/_packaging/my-feed/npm/registry/:username=<USERNAME>:_password=<PASSWORD>
不要對密碼進行 base64 編碼
Azure Artifacts 針對 .npmrc 的說明要求對密碼進行 base64 編碼。不要在 bunfig.toml 或 NPM_CONFIG_REGISTRY 中這樣做;Bun 會為你對密碼進行 base64 編碼。Bun 也會讀取 .npmrc 檔案,並且其中的 _password 必須保持 base64 編碼,就像 Azure 的說明中所示
要解碼 base64 編碼的密碼,可以開啟瀏覽器控制台執行:
atob("<base64編碼的密碼>");
或者,使用 base64 命令列工具,但密碼可能會出現在 shell 歷史記錄中:
echo "base64編碼的密碼" | base64 --decode