JavaScript Runtimes & Tooling
Runtimes, package managers, bundlers, and test runners powering JS and TS projects.
This week: Rust rewrites reshape JavaScript tooling →Vitest rc promotes parseSpecifications to stable
Vitest's release candidate promotes parseSpecifications out of experimental status, moves coverage onto the @vitest/istanbuljs packages, and adds source-location highlighting plus keyboard navigation to the UI's trace steps.
- Vitest stabilizes parseSpecifications, no longer requiring experimental opt-in for spec-table parsing
- Coverage reporting now runs on the dedicated @vitest/istanbuljs packages
- The UI highlights editor source locations and supports keyboard navigation within trace steps
pnpm
2 updatespnpm 12.1 brings the new workspace task scheduler to the Rust CLI, persists successful recursive tasks for precise retries, expands shared build artif...
pnpm 11.25 replaces topological batches with a task scheduler, adds configurable workspace task dependencies and per-task concurrency, and makes inter...
Deno desktop adds clipboard API, tightened fetch permissions
Deno v2.9.6 brings a desktop clipboard API and menu-item icon/tooltip/checked-state support, and enforces proxy transport permissions in fetch, plus a batch of correctness fixes across HTTP, N-API, and npm.
- Deno's desktop runtime gains a clipboard API and menu-item support for icons, tooltips, and checked states, plus permission enforcement for fetch proxy transports.
- Deno fixes request bodies staying readable after a response and invalid DNS records being skipped in ANY queries.
Turborepo Speeds Up Dry Runs and Glob Scans
Turborepo v2.10.12 boosts performance by streaming dry-run JSON output and merging same-prefix globs into a single directory walk, while also refining the homepage.
pnpm 11.24
pnpm 11.24 brings back pnpm approve-builds --global, which isolated global installs took away in v11.0, and makes recursive batch publishing group i...
pnpm 11.23
pnpm 11.23 gives the registries setting a shape that describes each registry once — its tarball layout, the scopes rou...
Bun 1.4 brings Windows support and faster startup
Bun shipped version 1.4, its first official Windows build, alongside a suite of performance improvements aimed at making startup and package resolution snappier for everyday web development.
- Bun 1.4 adds native Windows support, opening the runtime to a broader developer audience for the first time.
- The update streamlines common workflows like environment variable handling and package installation, cutting friction in day-to-day script runs.
Build tooling fixes caching and test reliability
Turborepo now caches uv tool tasks and respects gitignore without git metadata, while Vitest restores the global concurrency limit and hardens browser test mocking.
- Turborepo caches native uv tool tasks and honors gitignore rules even without git metadata, plus fixes strict entrypoint traversal and generator config isolation.
- Vitest revives the global concurrency limit for test lifecycle in the v4 line and backports browser fixes, including iframeId encoding and restricting redirect mocks to the fs allowlist.
Vitest hardens browser tests and enriches CI reporting
Vitest's browser tests now fail fast instead of hanging when the browser stops responding, and its GitHub Actions reporter supports a custom summary title with test names.
- Vitest browser tests now fail rather than hang when the browser goes unresponsive, avoiding silent CI stalls.
- The GitHub Actions reporter supports a custom summary title and displays test names, alongside fixes to the global concurrency limit, auth for coverage requests, and config root preservation.
pnpm 11.21-11.22
pnpm 11.21 and 11.22 teach pnpm install to update the lockfile in place for most everyday changes instead of re-resolving the whole dependency graph...
Turborepo speeds pruning and adds nub.lock support
Turborepo's stable release adds nub.lock support and single-pass pruning, while canary builds cache native uv tasks and fix Bun prune edge cases.
- Turborepo now supports nub.lock files and walks the repository once when pruning for faster builds.
- Turborepo's Bun prune path preserves overrides, trustedDependencies, workspace bins, and git integrity, and accepts lockfileVersion 3.
- Canary builds cache tasks run through the native uv tool and avoid repeated strict entrypoint traversal.
What's different in pnpm 12
pnpm 12 is a rewrite of pnpm in Rust, and it is currently a release candidate. Upgrading is not meant to be a migration: apart from the difference...
Turborepo adds Python quality task graphs
Turborepo can now synthesize, hash, and run Python quality tasks from declared tooling, plus a Windows process-cleanup PID-reuse fix and faster lockfile/glob hashing.
- Turborepo generates and runs Python quality task graphs automatically from your declared tooling.
- Turborepo fixes a Windows process cleanup bug that could kill the wrong process due to PID reuse.
- Turborepo speeds up lockfile and glob hashing and accepts semver ranges in devEngines.packageManager.version.
Deno v2.9.5 adds textStream and QuickJS
Deno's 2.9.5 release centers on a new Blob/Body textStream() method and an experimental QuickJS backend, shipping alongside dozens of Node compatibility and net/websocket fixes.
- Deno adds Blob/Body textStream() for streaming text reads, joining the public API surface.
- Deno ships an experimental QuickJS backend, broadening its embedded-engine options.
- Deno's new --unscoped (alias packages by unscoped name) and --members flags (run tasks only in workspace members) refine add and task workflows.
- Deno brings in a large batch of Node compatibility fixes, including Readable.toWeb() backpressure and corrected DNS permission handling for node:dns.getServers().
pnpm 11.20
pnpm 11.20 fixes a package-substitution risk in projects that install from more than one registry: packages resolved from a [named registry](https://p...
pnpm 11.15-11.19
pnpm 11.15 through 11.19 teach pnpm update and pnpm outdated to update GitHub Actions, let pnpm update write changesets for the bumps it makes, ...