Learn

bun en la práctica

El runtime todo-en-uno: package manager, bundler, test runner, y alternativa a Node.

bun no es solo un package manager: es un runtime JavaScript completo que aspira a reemplazar Node, npm, y varias herramientas secundarias (bundler, test runner) en un solo binario escrito en Zig.

Lo que bun hace en una sola herramienta

FuncionalidadbunEquivalente separado
Runtime JavaScriptNode.js
Package managernpm / pnpm
BundlerVite / esbuild / Rollup
Test runnerVitest / Jest
Transpilador TypeScriptnativotsc / ts-node

El resultado: menos dependencias, menos configuración, y una velocidad de ejecución frecuentemente superior a Node.

Instalar bun

En macOS y Linux:

shell
curl -fsSL https://bun.sh/install | bash

En Windows (PowerShell):

shell
powershell -c "irm bun.sh/install.ps1 | iex"

Via npm (alternativa):

shell
npm install -g bun

Verifica la instalación:

shell
bun --version

Comandos habituales

Instalar las dependencias de un proyecto existente:

shell
bun install

Añadir un paquete:

shell
bun add react

Añadir una devDependency:

shell
bun add -d typescript

Lanzar un script:

shell
bun run dev
shell
bun dev

Ejecutar un archivo directamente (sin node):

shell
bun run index.ts

Lanzar los tests:

shell
bun test

Ejecutar un comando puntual:

shell
bunx create-next-app my-app

Eliminar un paquete:

shell
bun remove lodash

Por qué bun es tan rápido

bun está escrito en Zig, un lenguaje de bajo nivel sin recolector de basura. Utiliza el motor JavaScript JavaScriptCore (el motor de Safari), conocido por su rápido arranque. Su instalación de paquetes está paralelizada de forma agresiva y usa su propio formato de caché binario (bun.lockb).

En benchmarks públicos, bun instala dependencias entre 5 y 20 veces más rápido que npm, y entre 2 y 5 veces más rápido que pnpm.

El lockfile de bun

bun genera un archivo bun.lockb (formato binario, no legible por humanos). Si necesitas inspeccionar las versiones fijadas, usa:

shell
bun pm ls

Compatibilidad

bun es compatible con el ecosistema npm en aproximadamente un 95%. La mayoría de los paquetes funcionan sin modificaciones. Los casos problemáticos que quedan: algunos paquetes nativos (.node bindings) y herramientas muy específicas de Node. En 2026, la compatibilidad mejora con cada nueva versión.

Documentación oficial de bun Compatibilidad con las APIs de Node.js

Marca los pasos para desbloquear lo siguiente

Volver al curso