mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
77 lines
2.8 KiB
Plaintext
77 lines
2.8 KiB
Plaintext
---
|
||
title: Using bun install with an Azure Artifacts npm registry
|
||
sidebarTitle: Azure Artifacts with Bun
|
||
mode: center
|
||
---
|
||
|
||
<Note>
|
||
In [Azure
|
||
Artifact's](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops&tabs=windows%2Cclassic)
|
||
instructions for `.npmrc`, they say to base64 encode the password. Do not do this for `bun install`. Bun will
|
||
automatically base64 encode the password for you if needed.
|
||
</Note>
|
||
|
||
[Azure Artifacts](https://azure.microsoft.com/en-us/products/devops/artifacts) is a package management system for Azure DevOps. It allows you to host your own private npm registry, npm packages, and other types of packages as well.
|
||
|
||
---
|
||
|
||
### Configure with bunfig.toml
|
||
|
||
---
|
||
|
||
To use it with `bun install`, add a `bunfig.toml` file to your project with the following contents. Make sure to replace `my-azure-artifacts-user` with your Azure Artifacts username, such as `jarred1234`.
|
||
|
||
```toml bunfig.toml icon="settings"
|
||
[install.registry]
|
||
url = "https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry"
|
||
username = "my-azure-artifacts-user"
|
||
# You can use an environment variable here
|
||
password = "$NPM_PASSWORD"
|
||
```
|
||
|
||
---
|
||
|
||
Then assign your Azure Personal Access Token to the `NPM_PASSWORD` environment variable. Bun [automatically reads](/runtime/environment-variables) `.env` files, so create a file called `.env` in your project root. There is no need to base-64 encode this token! Bun will do this for you.
|
||
|
||
```ini .env icon="settings"
|
||
NPM_PASSWORD=<paste token here>
|
||
```
|
||
|
||
---
|
||
|
||
### Configure with environment variables
|
||
|
||
---
|
||
|
||
To configure Azure Artifacts without `bunfig.toml`, you can set the `NPM_CONFIG_REGISTRY` environment variable. The URL should include `:username` and `:_password` as query parameters. Replace `<USERNAME>` and `<PASSWORD>` with the appropriate values.
|
||
|
||
```bash terminal icon="terminal"
|
||
NPM_CONFIG_REGISTRY=https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry/:username=<USERNAME>:_password=<PASSWORD>
|
||
```
|
||
|
||
---
|
||
|
||
### Don't base64 encode the password
|
||
|
||
---
|
||
|
||
In [Azure Artifact's](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops&tabs=windows%2Cclassic) instructions for `.npmrc`, they say to base64 encode the password. Do not do this for `bun install`. Bun will automatically base64 encode the password for you if needed.
|
||
|
||
<Note>**Tip** — If it ends with `==`, it probably is base64 encoded.</Note>
|
||
|
||
---
|
||
|
||
To decode a base64-encoded password, open your browser console and run:
|
||
|
||
```js browser icon="computer"
|
||
atob("<base64-encoded password>");
|
||
```
|
||
|
||
---
|
||
|
||
Alternatively, use the `base64` command line tool, but doing so means it may be saved in your terminal history which is not recommended:
|
||
|
||
```bash terminal icon="terminal"
|
||
echo "base64-encoded-password" | base64 --decode
|
||
```
|