voidzero-dev/vite-plus

GitHub: voidzero-dev/vite-plus

Vite+ 将运行时、包管理、开发服务器、Lint、格式化、测试、构建和 Monorepo 任务统一为单一依赖的零配置前端工具链。

Stars: 1382 | Forks: 43

Vite+ **Web 的统一工具链** _运行时和包管理、创建、开发、检查、测试、构建、打包以及 monorepo 任务缓存,集成在单一依赖中_ Vite+ 是本地 Web 开发的统一入口点。它将 [Vite](https://vite.dev/)、[Vitest](https://vitest.dev/)、[Oxlint](https://oxc.rs/docs/guide/usage/linter.html)、[Oxfmt](https://oxc.rs/docs/guide/usage/formatter.html)、[Rolldown](https://rolldown.rs/)、[tsdown](https://tsdown.dev/) 和 [Vite Task](https://github.com/voidzero-dev/vite-task) 结合成一个零配置的工具链,同时管理运行时和包管理器工作流: - **`vp env`:** 全局及按项目管理 Node.js - **`vp install`:** 通过自动检测包管理器来安装依赖 - **`vp dev`:** 运行 Vite 原生 ESM 开发服务器,支持即时 HMR - **`vp check`:** 一条命令运行格式化、lint 和类型检查 - **`vp test`:** 通过内置的 Vitest 运行测试 - **`vp build`:** 使用 Vite + Rolldown 构建生产环境应用 - **`vp run`:** 执行带有缓存和依赖感知调度的 monorepo 任务 - **`vp pack`:** 构建 npm 发布库或独立应用二进制文件 - **`vp create` / `vp migrate`:** 脚手架新项目并迁移现有项目 所有这些都从项目根目录配置,并适用于 Vite 的框架生态系统。 Vite+ 完全开源,采用 MIT 许可证。 ## 快速开始 将 Vite+ 全局安装为 `vp`: 对于 Linux 或 macOS: ``` curl -fsSL https://vite.plus | bash ``` 对于 Windows: ``` irm https://viteplus.dev/install.ps1 | iex ``` `vp` 处理完整的开发生命周期,例如包管理、开发服务器、lint、格式化、测试以及生产环境构建。 ## 配置 Vite+ 可以使用项目根目录下的单个 `vite.config.ts` 配置 Vite+: ``` import { defineConfig } from 'vite-plus'; export default defineConfig({ // Standard Vite configuration for dev/build/preview. plugins: [], // Vitest configuration. test: { include: ['src/**/*.test.ts'], }, // Oxlint configuration. lint: { ignorePatterns: ['dist/**'], }, // Oxfmt configuration. fmt: { semi: true, singleQuote: true, }, // Vite Task configuration. run: { tasks: { 'generate:icons': { command: 'node scripts/generate-icons.js', envs: ['ICON_THEME'], }, }, }, // `vp staged` configuration. staged: { '*': 'vp check --fix', }, }); ``` 这让你可以将开发服务器、构建、测试、lint、格式化、任务运行器和暂存文件工作流的配置保存在一处,具有类型安全的配置和共享默认值。 使用 `vp migrate` 迁移到 Vite+。它将工具特定的配置文件(如 `.oxlintrc*`、`.oxfmtrc*` 和 lint-staged 配置)合并到 `vite.config.ts` 中。 ### CLI 工作流 (`vp help`) #### 开始 - **create** - 从模板创建新项目 - **migrate** - 将现有项目迁移到 Vite+ - **config** - 配置 hooks 和 agent 集成 - **staged** - 在暂存文件上运行 linter - **install** (`i`) - 安装依赖 - **env** - 管理 Node.js 版本 #### 开发 - **dev** - 运行开发服务器 - **check** - 运行格式、lint 和类型检查 - **lint** - Lint 代码 - **fmt** - 格式化代码 - **test** - 运行测试 #### 执行 - **run** - 运行 monorepo 任务 - **exec** - 从本地 `node_modules/.bin` 执行命令 - **dlx** - 执行包二进制文件而无需将其安装为依赖 - **cache** - 管理任务缓存 #### 构建 - **build** - 为生产环境构建 - **pack** - 构建库 - **preview** - 预览生产环境构建 #### 管理依赖 Vite+ 根据 `packageManager` 和 lockfiles 自动包装你的包管理器(pnpm、npm 或 Yarn): - **add** - 将包添加到依赖 - **remove** (`rm`, `un`, `uninstall`) - 从依赖中移除包 - **update** (`up`) - 将包更新到最新版本 - **dedupe** - 对依赖进行去重 - **outdated** - 检查过时的包 - **list** (`ls`) - 列出已安装的包 - **why** (`explain`) - 显示为何安装某个包 - **info** (`view`, `show`) - 查看 registry 中的包元数据 - **link** (`ln`) / **unlink** - 管理本地包链接 - **pm** - 将命令转发给包管理器 #### 维护 - **upgrade** - 将 `vp` 自身更新到最新版本 - **implode** - 移除 `vp` 及所有相关数据 ### 脚手架你的第一个 Vite+ 项目 使用 `vp create` 创建新项目: ``` vp create ``` 你可以在项目内部运行 `vp create`,以向项目添加新的应用或库。 ### 迁移现有项目 你可以将现有项目迁移到 Vite+: ``` vp migrate ``` ### GitHub Actions 使用官方 [`setup-vp`](https://github.com/voidzero-dev/setup-vp) action 在 GitHub Actions 中安装 Vite+: ``` - uses: voidzero-dev/setup-vp@v1 with: node-version: '22' cache: true ``` #### 手动安装与迁移 如果你正在手动将项目迁移到 Vite+,请先安装这些 dev 依赖: ``` npm install -D vite-plus @voidzero-dev/vite-plus-core@latest ``` 你需要向包管理器添加 `vite` 和 `vitest` 的 overrides,以便其他依赖 Vite 和 Vitest 的包使用 Vite+ 版本: ``` "overrides": { "vite": "npm:@voidzero-dev/vite-plus-core@latest", "vitest": "npm:@voidzero-dev/vite-plus-test@latest" } ``` 如果你使用的是 `pnpm`,请将此添加到你的 `pnpm-workspace.yaml`: ``` overrides: vite: npm:@voidzero-dev/vite-plus-core@latest vitest: npm:@voidzero-dev/vite-plus-test@latest ``` 或者,如果你使用的是 Yarn: ``` "resolutions": { "vite": "npm:@voidzero-dev/vite-plus-core@latest", "vitest": "npm:@voidzero-dev/vite-plus-test@latest" } ```
标签:CLI, DNS解析, GNU通用公共许可证, HMR, MITM代理, MIT许可, Node.js, Oxlint, Rolldown, Syscall, TypeScript, Vite, Vitest, Web开发, WiFi技术, 任务调度, 依赖管理, 包管理器, 单仓库, 可视化界面, 安全插件, 工程化, 开发服务器, 开源项目, 打包工具, 格式化工具, 测试框架, 热更新, 统一API, 统一工具链, 网络调试, 脚手架, 自动化, 运行时管理, 通知系统, 零配置