DevToolBoxGRATUIT
Blog

Bun Package Manager : Le Runtime JavaScript le Plus Rapide en 2026

12 minpar DevToolBox

Bun est un runtime JavaScript tout-en-un écrit en Zig. Son gestionnaire de paquets installe les dépendances jusqu'à 23x plus vite que npm.

Installation et commandes de base

Bun s'installe en quelques secondes et fonctionne comme un remplacement direct aux commandes npm.

# Install Bun
curl -fsSL https://bun.sh/install | bash

# Verify installation
bun --version  # 1.x.x

# Install dependencies (reads package.json)
bun install

# Install a specific package
bun add express
bun add -d typescript @types/node   # dev dependency
bun add -g bunx                     # global install

# Remove a package
bun remove lodash

# Update all packages
bun update

# Run a script from package.json
bun run build
bun run dev

# Execute a TypeScript file directly (no transpile step)
bun run index.ts

Workspaces (support monorepo)

Bun supporte les workspaces de style npm pour les monorepos.

// package.json — monorepo root
{
  "name": "my-monorepo",
  "workspaces": [
    "packages/*",
    "apps/*"
  ],
  "scripts": {
    "dev": "bun run --filter '*' dev",
    "build": "bun run --filter '*' build",
    "test": "bun test"
  }
}

// Run a script only in specific workspace
bun run --filter @myapp/web dev

// Install a dependency in a specific workspace
bun add react --cwd apps/web

// Link a local workspace package
// (Bun automatically resolves workspace: protocol)

Le fichier de verrouillage binaire (bun.lockb)

Bun utilise un fichier de verrouillage binaire au lieu de JSON.

# bun.lockb is a binary lockfile (much faster to parse than JSON)
# To view lockfile contents in human-readable form:
bun bun.lockb  # prints as yarn.lock format

# To regenerate lockfile:
bun install --frozen-lockfile  # CI: fails if lockfile is stale

# Migrating from npm/yarn/pnpm:
# Bun reads package-lock.json, yarn.lock, pnpm-lock.yaml
# to preserve existing versions on first install

# .gitignore for Bun:
# node_modules/
# *.lock  (optional — commit bun.lockb for reproducible installs)

Benchmarks de performance

Le gestionnaire de paquets de Bun est nettement plus rapide que toutes les alternatives.

# Benchmark: installing react + 1400 packages
# (warm cache, MacBook M2 Pro)

npm install:   28.3s
yarn install:  14.1s
pnpm install:   9.4s
bun install:    1.2s   # 23x faster than npm!

# Cold cache (first install, no node_modules)
npm install:   38.7s
bun install:    4.1s   # 9x faster

# bun install uses:
# - Symlink-based node_modules (like pnpm)
# - Binary lockfile (bun.lockb) for fast parsing
# - Parallel downloads
# - Global package cache (~/.bun/install/cache)
# - Native code (written in Zig)

bunx et outils intégrés

bunx exécute des paquets sans téléchargement en utilisant des binaires en cache.

# bunx — like npx but instant (no download delay)
bunx create-next-app@latest my-app
bunx prettier --write .
bunx eslint src/

# Run TypeScript directly
bun index.ts            # works without ts-node or compilation
bun --watch server.ts   # auto-restart on file changes

# Bun's built-in test runner (Jest-compatible API)
bun test
bun test --watch
bun test src/utils.test.ts

// Example test file
import { expect, test, describe } from 'bun:test';

describe('math', () => {
    test('adds numbers', () => {
        expect(1 + 2).toBe(3);
    });

    test('async operations', async () => {
        const result = await fetch('https://api.example.com/data');
        expect(result.ok).toBe(true);
    });
});

Scripts et intégration build

Bun exécute les scripts package.json plus vite que npm/yarn.

// package.json scripts with Bun
{
  "scripts": {
    "dev": "bun --watch src/index.ts",
    "build": "bun build src/index.ts --outdir dist --target node",
    "bundle:web": "bun build src/app.ts --outdir public/js --target browser --minify",
    "test": "bun test",
    "lint": "bunx eslint src/",
    "format": "bunx prettier --write src/"
  }
}

// Bun's built-in bundler (replaces esbuild/webpack for simple cases)
// bun build src/index.ts --outdir dist --target node --minify

// Environment variables (Bun auto-loads .env files)
// No need for dotenv package!
console.log(process.env.DATABASE_URL); // works in Bun automatically

Bun vs npm vs pnpm vs Yarn

FeatureBunnpmpnpmYarn
Install speed (warm)1.2s28.3s9.4s14.1s
Lockfile formatBinaryJSONYAMLCustom text
node_modules styleSymlinksHoistedSymlinksHoisted/PnP
Workspace supportYesYesYesYes
Built-in TypeScriptYes (native)NoNoNo
Built-in test runnerYes (Jest API)NoNoNo
.env auto-loadingYesNoNoNo

Bonnes pratiques

  • Committer bun.lockb pour des installations reproductibles.
  • Utiliser bun --watch pour le dĂ©veloppement.
  • Migrer progressivement depuis npm.
  • Pour les monorepos, combiner Bun workspaces avec Turborepo.
  • Bun charge automatiquement .env — pas besoin de dotenv.

Foire aux questions

Bun est-il prĂȘt pour la production en 2026 ?

Oui. Bun 1.0+ a atteint la stabilité en 2023 avec une couverture API Node.js à 99%+.

Bun fonctionne-t-il avec tous les paquets npm ?

Presque tous. Les cas limites concernent les paquets utilisant des addons natifs Node.

Puis-je utiliser Bun avec Next.js ?

Oui pour le gestionnaire de paquets — bun install fonctionne immĂ©diatement.

Comment bun.lockb diffĂšre-t-il de package-lock.json ?

bun.lockb est un format binaire qui se parse en microsecondes.

Bun ou pnpm pour un nouveau projet ?

Les deux sont excellents. Bun pour l'approche tout-en-un, pnpm pour les grands monorepos.

Outils associés

𝕏 Twitterin LinkedIn
Cet article vous a-t-il aidé ?

Restez informé

Recevez des astuces dev et les nouveaux outils chaque semaine.

Pas de spam. Désabonnez-vous à tout moment.

Essayez ces outils associés

{ }JSON FormatterB→Base64 Encode OnlineIDUUID Generator Online

Articles connexes

Guide WebAssembly 2026 : Des Bases Ă  la Production avec Rust, C++ et Go

Guide complet WebAssembly 2026 : compiler Rust, C++ et Go en WASM, intégrer avec JavaScript et optimiser les performances.

Outils Monorepo 2026 : Turborepo vs Nx vs Lerna vs pnpm Workspaces

Comparaison complĂšte des outils monorepo 2026 : Turborepo, Nx, Lerna et pnpm workspaces pour choisir le bon outil.

TypeScript Type Guards : Guide Complet de Vérification de Type

Maßtrisez les type guards TypeScript : typeof, instanceof, in et guards personnalisés.