{"owner":"yangshun","repo":"tech-interview-handbook","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"files":{"AGENTS.md":"<!--VITE PLUS START-->\n\n# Using Vite+, the Unified Toolchain for the Web\n\nThis 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`.\n\n## Vite+ Workflow\n\n`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.\n\n### Start\n\n- create - Create a new project from a template\n- migrate - Migrate an existing project to Vite+\n- config - Configure hooks and agent integration\n- staged - Run linters on staged files\n- install (`i`) - Install dependencies\n- env - Manage Node.js versions\n\n### Develop\n\n- dev - Run the development server\n- check - Run format, lint, and TypeScript type checks\n- lint - Lint code\n- fmt - Format code\n- test - Run tests\n\n### Execute\n\n- run - Run monorepo tasks\n- exec - Execute a command from local `node_modules/.bin`\n- dlx - Execute a package binary without installing it as a dependency\n- cache - Manage the task cache\n\n### Build\n\n- build - Build for production\n- pack - Build libraries\n- preview - Preview production build\n\n### Manage Dependencies\n\nVite+ 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.\n\n- add - Add packages to dependencies\n- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies\n- update (`up`) - Update packages to latest versions\n- dedupe - Deduplicate dependencies\n- outdated - Check for outdated packages\n- list (`ls`) - List installed packages\n- why (`explain`) - Show why a package is installed\n- info (`view`, `show`) - View package information from the registry\n- link (`ln`) / unlink - Manage local package links\n- pm - Forward a command to the package manager\n\n### Maintain\n\n- upgrade - Update `vp` itself to the latest version\n\nThese 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.\n\n## Common Pitfalls\n\n- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations.\n- **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.\n- **Running scripts:** Vite+ built-in commands (`vp dev`, `vp build`, `vp test`, etc.) always run the Vite+ built-in tool, not any `package.json` script of the same name. To run a custom script that shares a name with a built-in command, use `vp run <script>`. For example, if you have a custom `dev` script that runs multiple services concurrently, run it with `vp run dev`, not `vp dev` (which always starts Vite's dev server).\n- **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.\n- **Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands.\n- **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.\n- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box.\n\n## Review Checklist for Agents\n\n- [ ] Run `vp install` after pulling remote changes and before getting started.\n- [ ] Run `vp check` and `vp test` to validate changes.\n<!--VITE PLUS END-->\n"}}