ITADN
voidzero-dev/vite-plus
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Vite+

Web 的统一工具链 运行时和包管理,create、dev、check、test、build、pack 以及 monorepo 任务缓存,全部集成在单一依赖中


Vite+ 是本地 Web 开发的统一入口。它将 ViteVitestOxlintOxfmtRolldowntsdownVite Task 整合为一个零配置工具链,同时管理运行时和包管理器工作流:

  • vp env 全局及按项目管理 Node.js
  • vp install 通过自动检测包管理器来安装依赖
  • vp dev 运行 Vite 的快速原生 ESM 开发服务器,支持即时 HMR
  • vp check 通过一条命令运行格式化、代码检查和类型检查
  • vp test 通过内置的 Vitest 运行测试
  • vp build 使用 Vite + Rolldown 为生产环境构建应用程序
  • vp run 运行 package.json 脚本和 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 处理完整的开发生命周期,例如包管理、开发服务器、代码检查、格式化、测试以及生产环境构建。

配置 Vite+

Vite+ 可以使用项目根目录下的单个 vite.config.ts 进行配置:

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',
  },
});

这使您能够将开发服务器、构建、测试、代码检查、格式化、任务运行器以及暂存文件工作流的配置集中在一处,并支持类型安全的配置和共享默认值。

使用 vp migrate 迁移到 Vite+。它会将特定于工具的配置(如 .oxlintrc*.oxfmtrc* 和 lint-staged 配置)合并到 vite.config.ts 中。

CLI 工作流 (vp help)

启动

  • create - 从模板创建新项目
  • migrate - 将现有项目迁移到 Vite+
  • config - 配置钩子和代理集成
  • staged - 对暂存文件运行代码检查
  • install (i) - 安装依赖项
  • env - 管理 Node.js 版本

开发

  • dev - 运行开发服务器
  • check - 运行格式化、代码检查和类型检查
  • lint - 检查代码
  • fmt - 格式化代码
  • test - 运行测试

执行

  • run - 运行 monorepo 任务
  • exec - 从本地 node_modules/.bin 执行命令
  • node - 使用解析后的 Vite+ 环境运行 Node.js 脚本
  • dlx - 执行包二进制文件,而无需将其作为依赖项安装
  • cache - 管理任务缓存

构建

  • build - 为生产环境构建
  • pack - 构建库
  • preview - 预览生产构建

管理依赖项

Vite+ 会根据 packageManager 和锁文件自动包装您的包管理器(pnpm、npm、Yarn 或 Bun):

  • add - 将包添加到依赖项
  • remove (rm, un, uninstall) - 从依赖项中移除包
  • update (up) - 将包更新到最新版本
  • dedupe - 去重依赖项
  • outdated - 检查过期的包
  • list (ls) - 列出已安装的包
  • why (explain) - 显示包被安装的原因
  • info (view, show) - 查看来自注册表的包元数据
  • link (ln) / unlink - 管理本地包链接
  • rebuild - 重新构建原生模块
  • pm - 将命令转发给包管理器

维护

  • upgrade - 将 vp 本身更新到最新版本
  • implode - 移除 vp 及所有相关数据

搭建你的第一个 Vite+ 项目

使用 vp create 创建新项目:

vp create

您可以在项目中运行 vp create 以向项目添加新的应用程序或库。

组织可以通过在其 npm 作用域下发布带有 createConfig.templates 清单的 @org/create 来公开一组精选模板,该清单位于其 package.json 中。 发布后,vp create @org 会针对这些模板打开一个交互式选择器,并且在 vite.config.ts 中设置 create: { defaultTemplate: '@org' } 会使其成为裸 vp create 的默认值。请参阅 组织模板指南 了解编写工作流程,以及 create.defaultTemplate 了解 配置参考。

迁移现有项目

您可以将现有项目迁移到 Vite+:

vp migrate

GitHub Actions

使用官方 setup-vp action 在 GitHub Actions 中安装 Vite+:

- uses: voidzero-dev/setup-vp@<setup-vp-version>
  with:
    node-version: '22'
    cache: true

<setup-vp-version> 设置为 setup-vp 发布页面 上的确切版本。您也可以使用 commit SHA。请勿使用 v1 标签。v1 标签不再接收更新。

请参阅 自动版本更新 以配置 Dependabot 或 Renovate。

手动安装与迁移

如果您正在手动将项目迁移到 Vite+,请先安装以下开发依赖项:

npm install -D vite-plus @voidzero-dev/vite-plus-core@latest

你需要在包管理器中添加覆盖配置,以便其他包解析 Vite+ 版本:将 vite 别名指向 @voidzero-dev/vite-plus-core,并将 vitest 固定到 Vite+ 捆绑的版本(运行 vp --version),以便整个项目与 vp test 共享单个 Vitest 副本。如果没有 vitest 固定,依赖项或工作区包可能会拉取与捆绑运行器不同的 Vitest,从而分裂 Vitest 的内部结构(mocks、expect、运行器状态):

"overrides": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "4.1.10"
}

如果你正在使用 pnpm,请将此添加到你的 pnpm-workspace.yaml 中:

overrides:
  vite: npm:@voidzero-dev/vite-plus-core@latest
  vitest: 4.1.10

或者,如果你正在使用 Yarn:

"resolutions": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "4.1.10"
}

赞助商

感谢 namespace.so 为我们的 CI/CD 流水线提供快速、免费的 macOS、Linux 和 Windows 运行器。