# Web & NUI

[← Back to README](../README.md)

![Packages, scripts and terminal](images/web_install.png)

## Packages

- The package manager is chosen per project: npm, pnpm, bun or yarn. The default is bun, but an existing lockfile wins.
- One-click **Install**, **Add package** (with a dev toggle) and remove
- A *"package.json changed · N missing"* warning, and an editor banner when an app's imports are missing because nothing is installed yet
- **Add FiveM types** (`@citizenfx/client`, `@citizenfx/server`)

## Scripts

Every script in `package.json` gets **Run / Stop** and runs in its own named terminal, with a status dot. When a dev server prints its address (Vite's `Local:`), it shows up as a chip that opens the browser.

## ui_page dev / build

The In-game UI card in the [manifest form](resources.md#fxmanifestlua-as-a-form) switches `ui_page` between the dev server and the build, and updates `files {}` to match.

## Chrome 103 compatibility

FiveM's CEF is Chrome 103. K3 Studio warns about newer CSS features and APIs in NUI files, and about a vite config that has no build target.
