Files
bun.sh/docs/install/npmrc.md
robobun f9a69773ab docs: add missing v1.2.19 features to documentation (#23087)
## Summary
This PR adds documentation for features introduced in Bun v1.2.19 that
were missing from the docs.

## Features Documented

### `.npmrc` Options
- `link-workspace-packages`: Controls how workspace packages are
installed when available locally
- `save-exact`: Always saves exact versions without the `^` prefix

### Node.js API Enhancements
- `vm.constants.DONT_CONTEXTIFY`: Support for making `globalThis` behave
like typical `globalThis`
- `os.networkInterfaces()`: Now returns `scopeid` property for IPv6
interfaces (not `scope_id`)
- `process.features.typescript`: Returns `"transform"`
- `process.features.require_module`: Returns `true`
- `process.features.openssl_is_boringssl`: Returns `true`

### `fs.glob` Enhancements
- Support for array of patterns as first argument
- New `exclude`/`ignore` option to filter results

### `node:module` API
- `SourceMap` class for parsing and inspecting sourcemaps
- `findSourceMap()` function to locate sourcemaps

## Changes Made
- `/docs/install/npmrc.md`: Added `link-workspace-packages` and
`save-exact` options
- `/docs/runtime/nodejs-apis.md`: Added Node.js compatibility features
- `/docs/api/glob.md`: Added Node.js fs.glob compatibility section

Documentation was kept concise with high information density as
requested.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-29 23:33:07 -07:00

2.9 KiB

Bun supports loading configuration options from .npmrc files, allowing you to reuse existing registry/scope configurations.

{% callout %}

NOTE: We recommend migrating your .npmrc file to Bun's bunfig.toml format, as it provides more flexible options and can let you configure Bun-specific options.

{% /callout %}

Supported options

registry: Set the default registry

The default registry is used to resolve packages, its default value is npm's official registry (https://registry.npmjs.org/).

To change it, you can set the registry option in .npmrc:

registry=http://localhost:4873/

The equivalent bunfig.toml option is install.registry:

install.registry = "http://localhost:4873/"

@<scope>:registry: Set the registry for a specific scope

Allows you to set the registry for a specific scope:

@myorg:registry=http://localhost:4873/

The equivalent bunfig.toml option is to add a key in install.scopes:

[install.scopes]
myorg = "http://localhost:4873/"

//<registry_url>/:<key>=<value>: Configure options for a specific registry

Allows you to set options for a specific registry:

# set an auth token for the registry
# ${...} is a placeholder for environment variables
//http://localhost:4873/:_authToken=${NPM_TOKEN}


# or you could set a username and password
# note that the password is base64 encoded
//http://localhost:4873/:username=myusername

//http://localhost:4873/:_password=${NPM_PASSWORD}

# or use _auth, which is your username and password
# combined into a single string, which is then base 64 encoded
//http://localhost:4873/:_auth=${NPM_AUTH}

The following options are supported:

  • _authToken
  • username
  • _password (base64 encoded password)
  • _auth (base64 encoded username:password, e.g. btoa(username + ":" + password))

The equivalent bunfig.toml option is to add a key in install.scopes:

[install.scopes]
myorg = { url = "http://localhost:4873/", username = "myusername", password = "$NPM_PASSWORD" }

Controls how workspace packages are installed when available locally:

link-workspace-packages=true

The equivalent bunfig.toml option is install.linkWorkspacePackages:

[install]
linkWorkspacePackages = true

save-exact: Save exact versions

Always saves exact versions without the ^ prefix:

save-exact=true

The equivalent bunfig.toml option is install.exact:

[install]
exact = true