migration

Migrating from npm to Bun

Licence and terms

npm
Other, Open source
Bun
Other, Open source
Fit
Full replacement bun install reads package.json and writes its own lockfile.

Compatibility

bun install is an npm client that writes a Node.js compatible node_modules folder. The Bun team says it can replace npm install in a Node.js project without code changes and without using Bun’s runtime.

Before you switch

  1. Install. Run bun install (or bun i) where you ran npm install. That single command performs the migration.
  2. Map the everyday commands. bun i -d <package> adds a devDependency, bun rm <package> removes one, and bun outdated works like npm outdated.
  3. Map the run commands. npm run <script> becomes bun <script>, npm exec <bin> becomes bun <bin>, node <file> becomes bun <file>, and npx <package> becomes bunx <package>.
  4. Replace workspace flags. npm run --workspace lib-foo --workspace lib-bar my-script becomes bun --filter 'lib-*' my-script.

The guide only mentions package-lock.json. It says nothing about npm-shrinkwrap.json, about keeping or deleting the npm lockfile, or about CI.

Pitfalls

Official guide

Bun's migration guide ↗

Reviewed on 2026-09-29.

Sources

Other alternatives to npm →