/bun:publish
Publish package to npm registry after building with Bun.
Parameters
--dry-run: Preview publish without executing--access: Access level (publicorrestricted)--provenance: Enable supply chain provenance signing
Context
Detect package configuration:
cat package.json | jq '{name, version, publishConfig, bin, files, scripts: {prepublishOnly: .scripts.prepublishOnly}}'
Execution
Pre-publish Validation
# Type check
bun run tsc --noEmit 2>&1 | head -20
# Build
bun run build
# Verify tarball contents
npm pack --dry-run
Publish
Dry run (default for first attempt):
npm publish --dry-run {{ "--access " + ACCESS if ACCESS }}
Actual publish:
# Standard package
npm publish {{ "--access " + ACCESS if ACCESS }} {{ "--provenance" if PROVENANCE }}
# Scoped package (auto-detect from name starting with @)
npm publish --access public {{ "--provenance" if PROVENANCE }}
Scoped Package Detection
If package.json name starts with @:
- Automatically add
--access publicunless explicitly restricted - Warn if
publishConfig.accessis not set in package.json
Post-publish
- Display published version:
npm view <package> version - Show installation command:
npm install <package> - Link to npm package page
Error Handling
402 Payment Required:
- Scoped packages require
--access publicfor public registry - Add
publishConfig.access: "public"to package.json
Missing authentication:
- Run
npm loginto authenticate - Or set
NPM_TOKENenvironment variable