github nitrojs/nitro v3.0.1-alpha.1
v3-alpha.1

14 hours ago

compare changes

🌟 Highlights (since alpha.0)

  • Fully supporting rolldown and rolldown-vite
  • Even smaller: install size is down to 9MB with ongoing efforts to reduce more
  • Runtime performance can get close to 98% of native performances (tested with standard preset on Bun)
  • We have bunch of fresh examples
  • Removed lots of old hacks, fixed stability issues
  • WebSockets supported
  • Vite plugins can extend Nitro

Join Nitro Discord Server if you have feedbacks and ideas!

🚀 Enhancements

  • vite: Support ?assets import (#3662)
  • vercel: Support Bun runtime (#3678)
  • vite: HMR client when server routes change (#3700)
  • vercel: Add back node handler format under a flag (#3709)
  • vite: Interoperability between nitro modules and vite plugins (#3712)
  • Support node handler format (#3717)
  • routes config (#3718)
  • Opt-in filesystem routing using serverDir config (#3719)
  • vite: rolldown-vite support (#3723)
  • routing: Use baseURL config (#3724)
  • Export defineConfig and runtime utils from "nitro" (#3726)
  • Server fetch utils (#3731)
  • vite: Load dot env in preview mode (#3735)
  • Improve build info loading (#3743)
  • vercel: Switch to node compat if one handler format is node (#3749)
  • Automatically detect deno and bun as preset (#3750)
  • nitro/tsconfig preset (#3754)
  • core: Autoload project tsconfig.json for aliases and JSX options (#3757)
  • ⚠️ Migrate to oxc-transform and oxc-minify (#3763)
  • renderer.static config (#3765)
  • Websocket Support (#3766)
  • cloudflare: Enable nodeCompat and deployConfig by default (#3768)
  • Auto detect builder (making rollup optional) (#3769)
  • Improve sourcemap support (disabled by default) (2753e1cf)
  • cloudflare: Enable no_bundle by default (6d7c4b0f)
  • cli: Support nitro build --builder (07b725f5)

🔥 Performance

  • Upgrade hookable (#3684)
  • app: Tree-shake extra routing logic when not needed (#3685)
  • Reduce error handler bundle impact (af7f1565)
  • app: Tree-shake extra condition (74134d25)
  • standard: Only accept standard req (6420d784)
  • app: Directly passthrough req (13f66ac2)
  • Tree-shake plugins and hooks when not used (#3698)
  • Reduce nitroApp.fetch() overhead (#3699)

🩹 Fixes

  • vite: Skip pre nitro middleware if path has extension (#3649)
  • cloudflare: Properly resolve dev plugin (3afbc402)
  • vite: Remove noExternal: true from each service build (#3665)
  • build: Avoid replacing unexpected words (#3671)
  • cloudflare: Add cloudflare:workers alias in dev (#3663)
  • Support autoimports typeFrom property for declaration gen (#3670)
  • vite: Call rollup:before hook in dev mode for compatibility (2d199369)
  • vite: Consistently call rollup:before. after resolving config (aec6dd26)
  • Add hookable sub-dep to runtimeDependencies (5349f852)
  • rolldown: Pass minify option (264ba29b)
  • vite: Always enable noExternal for prod (cdeb667d)
  • Automatically add bun and deno export conditions (#3695)
  • vercel: Move bun detection to earlier stage (b34f0492)
  • vite: Disable cors in dev (#3692)
  • app: Unwrap _request without in operator (7fcd1568)
  • Handle sync callHook value (d3b720f0)
  • Improve internal dependency resolution (#3702)
  • node, bun, deno: Add back unhandled error/rejection traps (#3710)
  • vite: Improvements on #3712 (#3712)
  • dev: Trap unhandled errors (#3710)
  • routing: Normalize and resolve handlers (15669702)
  • routing: Filter invalid final handlers (c1a3be05)
  • vite: Ignore invalid SSR env without entry (aefcdb31)
  • config: Resolve errorHandler config (16b10fb0)
  • rolldown, vite: Escape non-safe chars from chunkFileNames (491dc128)
  • vite: Set correct builder (fa27a9a2)
  • Retry last-build link once (25fa2e9e)
  • vite: Only pass transform options in rolldown mode (737f4e6e)
  • vite: Use configEnv.command to determine dev mode (#3730)
  • vite: Send full-reload to server (#3732)
  • vite: Update <!--ssr-outlet--> for prod (ebb040f3)
  • Apply baseURL to production assets (#3734)
  • vercel: Properly parse x-now-route-matches header (c0ee44bf)
  • cloudflare: Workround for rolldown minify issue (#3748)
  • Standard preset aliases (5419b335)
  • node, bun, deno: Use static import only (#3751)
  • vite: Use noExternal list for dev (#3761)
  • Resolve full path of strings in modules: [] (23f7bea2)
  • Add buildDir to noExternal (c21a33ba)
  • cloudflare: Push unenv externals preset to resolved config (5faf0f5e)
  • Make nitro/meta side-effect free (2292c661)
  • cloudflare: Only enable no_bundle for workers (not pages) (409ecf3c)
  • vite: Add route rules only if assetsDir generated (#3774)

💅 Refactors

  • vite: Avoid empty lines in CI and test (44b2f091)
  • vite: Show original plugin name/hook when failed (b0a49d41)
  • vite: Overhaul plugin setup (#3676)
  • vite: Enable back nf3 (57503e42)
  • vercel: Rename __fallback to __server (4aad3595)
  • rollup: Hide THIS_IS_UNDEFINED warn (5f6da290)
  • rolldown: Update transform config (3be802f2)
  • ESM imports with erasable syntax (#3704)
  • ⚠️ Cleanup deno, bun and node presets (#3705)
  • ⚠️ Remove defineRender util (#3706)
  • vite: Remove __VITE_MANIFEST__ (#3714)
  • ⚠️ Register server.ts as /** route (#3716)
  • cloudflare: Remove old esbuild target (18820e2a)
  • Remove specific delimiters (#3725)
  • dev: Use h3.serverStatic (#3728)
  • dev: Improve serveStaticDir with compression and streaming (9ee9f218)
  • core: Use native import for loading modules (#3729)
  • Use node_modules/.nitro for buildDir and rely less on it (#3745)
  • vite: Allow directly passing nitro options to nitro({}) plugin (#3746)
  • rollup, rolldown: Better info logs (3bbeb5f0)
  • ⚠️ Rename renderer.entry to renderer.handler (#3752)
  • ⚠️ Remove build time storage and mounts (#3753)
  • Better serverDir config DX (#3755)
  • ⚠️ Overhaul runtime exports and avoid barrel exports (#3760)
  • Rewrite node-cluster preset (#3762)
  • ⚠️ Remove default auto imports (#3764)
  • ⚠️ Disable unenv npm shims (#3767)
  • rollup, vite: Remove CommonJS option overrides (#3770)
  • Only allow strict raw: imports (#3772)
  • ⚠️ Only replace import.meta.* (not prcoess.env.*) (#3773)
  • Disable sourcemaps by default for now (fc0ccfae)

📖 Documentation

  • configuration: Fix typo (#3693)
  • cloudflare: Add wrangler.json examples (#3380)
  • Add note about nightly channel usage (#3739)
  • config: Remove legacyExternals (#3744)

📦 Build

  • Bundle preset types (#3667)
  • ⚠️ Move nitro exports to nitro/builder (#3703)

❤️ Contributors

Don't miss a new nitro release

NewReleases is sending notifications on new releases.