diff --git a/.vscode/settings.json b/.vscode/settings.json index fce62f60e..3f33484da 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,4 @@ { - // vite+ (linting and formatting) "editor.codeActionsOnSave": { "source.fixAll.oxc": "always" }, @@ -7,12 +6,24 @@ "editor.formatOnSave": true, "editor.formatOnSaveMode": "file", "oxc.typeAware": true, - // others "files.watcherExclude": { "**/.git/objects/**": true, "**/.git/subtree-cache/**": true, "**/.hg/store/**": true, ".flatpak/**": true, "_build/**": true - } + }, + "[javascript]": { + "editor.defaultFormatter": "oxc.oxc-vscode" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "oxc.oxc-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "oxc.oxc-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "oxc.oxc-vscode" + }, + "oxc.fmt.configPath": "./vite.config.ts" } diff --git a/AGENTS.md b/AGENTS.md index d75ac3bf1..09d478634 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -111,75 +111,15 @@ src-tauri/ # Rust/Tauri backend # Using Vite+, the Unified Toolchain for the Web -This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`. +This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, and it invokes Vite through `vp dev` and `vp build`. Run `vp help` to print a list of commands and `vp --help` for information about a specific command. -## Vite+ Workflow +Docs are local at `node_modules/vite-plus/docs` or online at https://viteplus.dev/guide/. -`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp --help` for information about a specific command. - -Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles. - -### Start - -- create - Create a new project from a template -- migrate - Migrate an existing project to Vite+ -- config - Configure hooks and agent integration -- staged - Run linters on staged files -- install (`i`) - Install dependencies -- env - Manage Node.js versions - -### Develop - -- dev - Run the development server -- check - Run format, lint, and TypeScript type checks -- lint - Lint code -- fmt - Format code -- test - Run tests - -### Execute - -- run - Run monorepo tasks -- exec - Execute a command from local `node_modules/.bin` -- dlx - Execute a package binary without installing it as a dependency -- cache - Manage the task cache - -### Build - -- build - Build for production -- pack - Build libraries -- preview - Preview production build - -### Manage Dependencies - -- add - Add packages to dependencies -- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies -- update (`up`) - Update packages to latest versions -- dedupe - Deduplicate dependencies -- outdated - Check for outdated packages -- list (`ls`) - List installed packages -- why (`explain`) - Show why a package is installed -- info (`view`, `show`) - View package information from the registry -- link (`ln`) / unlink - Manage local package links -- pm - Forward a command to the package manager - -### Maintain - -- upgrade - Update `vp` itself to the latest version - -These commands map to their corresponding tools. For example, `vp dev --port 3000` runs Vite's dev server and works the same as Vite. `vp test` runs JavaScript tests through the bundled Vitest. The version of all tools can be checked using `vp --version`. This is useful when researching documentation, features, and bugs. - -## Common Pitfalls - -- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations. -- **Always use Vite commands to run tools:** Don't attempt to run `vp vitest` or `vp oxlint`. They do not exist. Use `vp test` and `vp lint` instead. -- **Running scripts:** Vite+ commands take precedence over `package.json` scripts. If there is a `test` script defined in `scripts` that conflicts with the built-in `vp test` command, run it using `vp run test`. -- **Do not install Vitest, Oxlint, Oxfmt, or tsdown directly:** Vite+ wraps these tools. They must not be installed directly. You cannot upgrade these tools by installing their latest versions. Always use Vite+ commands. -- **Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands. -- **Import JavaScript modules from `vite-plus`:** Instead of importing from `vite` or `vitest`, all modules should be imported from the project's `vite-plus` dependency. For example, `import { defineConfig } from 'vite-plus';` or `import { expect, test, vi } from 'vite-plus/test';`. You must not install `vitest` to import test utilities. -- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box. - -## Review Checklist for Agents +## Review Checklist - [ ] Run `vp install` after pulling remote changes and before getting started. -- [ ] Run `vp check` and `vp test` to validate changes. +- [ ] Run `vp check` and `vp test` to format, lint, type check and test changes. +- [ ] Check if there are `vite.config.ts` tasks or `package.json` scripts necessary for validation, run via `vp run