Skip to content
Cloudflare Docs

Nuxt

In this guide, you will create a new Nuxt application and deploy to Cloudflare Workers (with the new Beta Workers Assets).

1. Set up a new project

Use the create-cloudflare CLI (C3) to set up a new project. C3 will create a new project directory, initiate Nuxt's official setup tool, and provide the option to deploy instantly.

To use create-cloudflare to create a new Nuxt project with Beta Workers Assets, run the following command:

Terminal window
npm create cloudflare@latest my-nuxt-app -- --framework=nuxt --platform=workers

For setup, select the following options:

  • For What would you like to start with?, choose Framework Starter.
  • For Which development framework do you want to use?, choose Nuxt.
  • Complete the framework's own CLI wizard.
  • For Do you want to use git for version control?, choose Yes.
  • For Do you want to deploy your application?, choose No (we will be making some changes before deploying).

After setting up your project, change your directory by running the following command:

Terminal window
cd my-nuxt-app

2. Develop locally

After you have created your project, run the following command in the project directory to start a local server. This will allow you to preview your project locally during development.

Terminal window
npm run dev

3. Deploy your Project

Your project can be deployed to a *.workers.dev subdomain or a Custom Domain, from your own machine or from any CI/CD system, including Cloudflare's own.

The following command will build and deploy your project. If you're using CI, ensure you update your "deploy command" configuration appropriately.

Terminal window
npm run deploy

Bindings

Your Nuxt application can be fully integrated with the Cloudflare Developer Platform, in both local development and in production, by using product bindings. The Nuxt documentation provides information about configuring bindings and how you can access them in your Nuxt event handlers.

Static assets

You can serve static assets your Nuxt application by placing them in the ./public/ directory. This can be useful for resource files such as images, stylesheets, fonts, and manifests.

By default, Cloudflare first tries to match a request path against a static asset path, which is based on the file structure of the uploaded asset directory. This is either the directory specified by assets.directory in your Wrangler config or, in the case of the Cloudflare Vite plugin, the output directory of the client build. Failing that, we invoke a Worker if one is present. If there is no Worker, or the Worker then uses the asset binding, Cloudflare will fallback to the behaviour set by not_found_handling.

Refer to the routing documentation for more information about how routing works with static assets, and how to customize this behavior.