Skip to content

The Nx plugin for Nuxt.

Setting up a new Nx workspace with @nx/nuxt

Section titled “Setting up a new Nx workspace with @nx/nuxt”

You can create a new workspace that uses Nuxt with one of the following commands:

  • Generate a new monorepo with a Nuxt app
npx create-nx-workspace@latest --preset=nuxt

In any Nx workspace, you can install @nx/nuxt by running the following command:

nx add @nx/nuxt

This will install the correct version of @nx/nuxt.

The @nx/nuxt plugin will create a task for any project that has an Nuxt configuration file present. Any of the following files will be recognized as an Nuxt configuration file:

  • nuxt.config.js
  • nuxt.config.ts
  • nuxt.config.mjs
  • nuxt.config.mts
  • nuxt.config.cjs
  • nuxt.config.cts

To view inferred tasks for a project, open the project details view in Nx Console or run nx show project my-project --web in the command line.

The @nx/nuxt/plugin is configured in the plugins array in nx.json.

nx.json
{
"plugins": [
{
"plugin": "@nx/nuxt/plugin",
"options": {
"buildTargetName": "build",
"testTargetName": "test",
"serveTargetName": "serve",
"buildStaticTargetName": "build-static",
"serveStaticTargetName": "serve-static"
}
}
]
}

The buildTargetName, testTargetName and serveTargetName options control the names of the inferred Nuxt tasks. The default names are build, test and serve.

The buildStaticTargetName and serveStaticTargetName options control the names of the inferred Nuxt static tasks. The default names are build-static and serve-static.

nx g @nx/nuxt:app apps/my-app

Once you are ready to deploy your Nuxt application, you have absolute freedom to choose any hosting provider that fits your needs.

We have detailed how to deploy your Nuxt application to Vercel in a separate guide.

By default nuxt does not generate static HTML files when you run the build command. However, Nx provides a build-static target that you can use to generate static HTML files for your Nuxt application. Essentially, this target runs the nuxt build --prerender command to generate static HTML files.

To perform end-to-end (E2E) testing on static HTML files using a test runner like Cypress. When you create a Nuxt application, Nx automatically creates a serve-static target. This target is designed to serve the static HTML files produced by the build-static command.

This feature is particularly useful for testing in continuous integration (CI) pipelines, where resources may be constrained. Unlike the serve target, serve-static does not require a Nuxt's Nitro server to operate, making it more efficient and faster by eliminating background processes, such as file change monitoring.

To utilize the serve-static target for testing, run the following command:

nx serve-static my-nuxt-app-e2e

This command performs several actions:

  1. It will build the Nuxt application and generate the static HTML files.
  2. It will serve the static HTML files using a simple HTTP server.
  3. It will run the Cypress tests against the served static HTML files.