Skip to content

Enable access to the Cloudflare runtime bindings in development server of Nitro and Nuxt

License

Notifications You must be signed in to change notification settings

nitrojs/nitro-cloudflare-dev

Repository files navigation

Cloudflare Platform for Nitro and Nuxt

This proof of concept module enables access to the Cloudflare runtime platform in the development server of Nitro and Nuxt using the new getPlatformProxy API exposed by wrangler and miniflare

Note

Nitro plans to introduce a new method to allow native dev presets, meaning you can natively run miniflare as your development server without this module or a proxy in the future!

Usage

First, install nitro-cloudflare-dev and wrangler packages as a dev dependency: (unjs/nypm will automatically detect your package manager!)

npx nypm@latest add -D wrangler nitro-cloudflare-dev

For Nuxt update nuxt.config.ts:

export default defineNuxtConfig({
  modules: ["nitro-cloudflare-dev"],
});

For Nitro update nitro.config.ts:

import nitroCloudflareBindings from "nitro-cloudflare-dev";

export default defineNitroConfig({
  modules: [nitroCloudflareBindings],
});

Configuration and persistence

This module automatically finds the closest wrangler.toml file for configuration.

Data is persisted .wrangler/state/v3 directory. On first use of the module, it will be automatically added to the .gitignore file.

You can configure additional options using cloudflareDev: { } in nitro.config or nitro: { cloudflareDev: {} } in nuxt.config.

Available options

  • persistDir: Sets the persist dir (default .wrangler/state/v3).
  • configPath: Sets a custom path for wrangler.toml file.
  • silent: Hide initial banner.
  • environment: Sets specific environment (useful for multi-environment configurations)

Development

  • Clone this repository
  • Install the latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Build in stub mode using pnpm build --stub
  • Run Nitro playground using pnpm dev:nitro or Nuxt playground using pnpm dev:nuxt

License

MIT