Install
openclaw skills install bunBuild with Bun runtime avoiding Node.js compatibility traps, bundler pitfalls, and package manager gotchas.
openclaw skills install bunUser needs Bun expertise — fast JavaScript/TypeScript runtime, bundler, and package manager. Agent handles migration from Node, bundling for web/server, and troubleshooting compatibility issues.
| Topic | File |
|---|---|
| Node.js API differences | node-compat.md |
| Bundler configuration | bundler.md |
| Package management | packages.md |
process.nextTick timing differs from Node — race conditions appear that didn't exist before, use queueMicrotask for cross-runtime code__dirname and __filename don't exist in ESM — use import.meta.dir and import.meta.file, forgetting causes ReferenceErrorfs.watch misses events that Node catches — file watcher scripts silently miss changes, add polling fallbackchild_process.spawn options subset — some stdio configurations silently ignored, test subprocess code explicitlycluster module not supported — app crashes immediately if code uses cluster, must refactor to workersvm module partial — sandboxed code may escape or behave differently, security implications--target=browser strips Node APIs silently — build succeeds, then runtime crashes on fs, path, etc.--splitting requires --format=esm — error message doesn't mention this, just fails cryptically--external:package for server deps"sideEffects": false to package.json or lose codeurl() paths resolve wrong, test in actual browser--minify mangles names aggressively — debugging production crashes is harder, use --minify-syntax for safer minificationbun.lockb is binary format — can't diff, can't merge, Git conflicts require delete and regeneratebun install resolves differently than npm — "works on my machine" when teammate uses npmlink: protocol behaves differently — imports from workspace packages may failbun add modifies package.json formatting — unwanted diff noise in commitsnpm audit equivalent — security vulnerabilities not surfaced automaticallytsc — type errors don't stop execution, bugs ship to productiontsconfig.json paths work differently — imports that worked in Node+tsc may failbun test has different assertion API — tests written for Jest need adaptationbun --hot doesn't reload native modules — changes require restart