nx/packages/vite/docs/configuration-examples.md
Leosvel Pérez Espinosa 2b820a274e
docs(misc): update /packages/ links to /nx-api/ (#26128)
- Update `/packages/` links to `/nx-api/`
- Convert some unneeded absolute links to relative
- Remove leftover examples doc for the already removed `cypress-project`
generator

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #26126
2024-05-28 09:44:48 -04:00

3.8 KiB

title description
Examples for the Vite configuration generator This page contains examples for the Vite @nx/vite:configuration generator, which helps you set up Vite on your Nx workspace, or convert an existing project to use Vite.

This generator is used for converting an existing React or Web project to use Vite.js.

It will create a vite.config.ts file at the root of your project with the correct settings, or if there's already a vite.config.ts file, it will modify it to include the correct settings.

{% callout type="caution" title="Your code will be modified!" %} This generator will modify your code, so make sure to commit your changes before running it. {% /callout %}

nx g @nx/vite:configuration

When running this generator, you will be prompted to provide the following:

  • The project, as the name of the project you want to generate the configuration for.
  • The uiFramework you want to use. Supported values are: react and none.

You must provide a project and a uiFramework for the generator to work.

You may also pass the includeVitest flag. This will also configure your project for testing with Vitest, by adding the test configuration in your vite.config.ts file.

How to use

If you have an existing project that does not use Vite, you may want to convert it to use Vite. This can be a webpack project, a buildable JS library that uses the @nx/js:babel, the @nx/js:swc or the @nx/rollup:rollup executor, or even a non-buildable library. By default, the @nx/vite:configuration generator will search your project to find the relevant configuration (either a webpack.config.ts file for example, or the @nx/js executors). If it determines that your project can be converted, then Nx will generate the configuration for you. If it cannot determine that your project can be converted, it will ask you if you want to convert it anyway or throw an error if it determines that it cannot be converted.

You can then test on your own if the result works or not, and modify the configuration as needed. It's suggested that you commit your changes before running the generator, so you can revert the changes if needed.

Projects that can be converted to use the @nx/vite executors

Usually, React and Web projects generated with the @nx/react and the @nx/web generators can be converted to use the @nx/vite executors without any issues.

The list of executors for building, testing and serving that can be converted to use the @nx/vite executors is:

Supported build executors

  • @nxext/vite:build
  • @nx/js:babel
  • @nx/js:swc
  • @nx/rollup:rollup
  • @nx/webpack:webpack
  • @nx/web:rollup

Unsupported executors

  • @nx/angular:ng-packagr-lite
  • @nx/angular:package
  • @nx/angular:webpack-browser
  • @angular-devkit/build-angular:browser
  • @angular-devkit/build-angular:dev-server
  • @nx/esbuild:esbuild
  • @nx/react-native:start
  • @nx/next:build
  • @nx/next:server
  • @nx/js:tsc
  • any executor not listed in the lists of "supported executors"
  • any project that does not have a target for building, serving or testing

We cannot guarantee that projects using unsupported executors - or any executor that is NOT listed in the list of "supported executors" - for either building, testing or serving will work correctly when converted to use Vite.

You can read more in the Vite package overview page.

Examples

Convert a React app to use Vite

nx g @nx/vite:configuration --project=my-react-app --uiFramework=react --includeVitest

This will configure the my-react-app project to use Vite.

Convert a Web app to use Vite

nx g @nx/vite:configuration --project=my-web-app --uiFramework=none --includeVitest

This will configure the my-web-app project to use Vite.