大神尤雨溪再次出手,前端工具链整合--该文章是对vite plus官方README文档进行了翻译

Web 统一工具链 运行时和包管理、创建、开发、检查、测试、构建、打包以及单仓库任务缓存,全部集成在一个依赖中


Vite+ 是本地 Web 开发的统一入口。它将 Vite、Vitest、Oxlint、Oxfmt、Rolldown、tsdown 和 Vite Task 整合到一个零配置工具链中,同时还管理运行时和包管理器工作流:

  • vp env: 全局和按项目方式管理 Node.js
  • vp install: 自动检测包管理器并安装依赖
  • vp dev: 运行 Vite 的快速原生 ESM 开发服务器,支持即时热更新
  • vp check: 一键运行格式化、代码检查和类型检查
  • vp test: 通过内置的 Vitest 运行测试
  • vp build: 使用 Vite + Rolldown 构建生产环境应用
  • vp run: 执行单仓库任务,支持缓存和依赖感知调度
  • vp pack: 构建用于 npm 发布的库或独立应用二进制文件
  • vp create / vp migrate: 搭建新项目并迁移现有项目

所有这些都可以从项目根目录进行配置,并且可以在 Vite 的框架生态系统中工作。 Vite+ 在 MIT 许可证下完全开源。

开始使用

全局安装 Vite+ 为 vp:

Linux 或 macOS:

bash 复制代码
curl -fsSL https://vite.plus | bash

Windows:

bash 复制代码
irm https://viteplus.dev/install.ps1 | iex

vp 处理完整的开发生命周期,包括包管理、开发服务器、代码检查、格式化、测试和生产构建。

配置 Vite+

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

ts 复制代码
import { defineConfig } from 'vite-plus';

export default defineConfig({
  // 用于开发/构建/预览的标准 Vite 配置。
  plugins: [],

  // Vitest 配置。
  test: {
    include: ['src/**/*.test.ts'],
  },

  // Oxlint 配置。
  lint: {
    ignorePatterns: ['dist/**'],
  },

  // Oxfmt 配置。
  fmt: {
    semi: true,
    singleQuote: true,
  },

  // Vite Task 配置。
  run: {
    tasks: {
      'generate:icons': {
        command: 'node scripts/generate-icons.js',
        envs: ['ICON_THEME'],
      },
    },
  },

  // `vp staged` 配置。
  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 - 运行单仓库任务
  • exec - 从本地 node_modules/.bin 执行命令
  • dlx - 执行包二进制文件,无需将其安装为依赖项
  • cache - 管理任务缓存

构建

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

管理依赖

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

  • add - 添加包到依赖项
  • remove (rm, un, uninstall) - 从依赖项中移除包
  • update (up) - 将包更新到最新版本
  • dedupe - 去重依赖项
  • outdated - 检查过时的包
  • list (ls) - 列出已安装的包
  • why (explain) - 显示为什么安装了某个包
  • info (view, show) - 从注册表查看包元数据
  • link (ln) / unlink - 管理本地包链接
  • pm - 将命令转发给包管理器

维护

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

搭建您的第一个 Vite+ 项目

使用 vp create 创建新项目:

bash 复制代码
vp create

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

迁移现有项目

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

bash 复制代码
vp migrate

GitHub Actions

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

yaml 复制代码
- uses: voidzero-dev/setup-vp@v1
  with:
    node-version: '22'
    cache: true

手动安装和迁移

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

bash 复制代码
npm install -D vite-plus @voidzero-dev/vite-plus-core@latest

您需要为 vite 和 vitest 向您的包管理器添加覆盖,以便其他依赖 Vite 和 Vitest 的包使用 Vite+ 版本:

json 复制代码
"overrides": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
}

如果您使用 pnpm,请在 pnpm-workspace.yaml 中添加:

yaml 复制代码
overrides:
  vite: npm:@voidzero-dev/vite-plus-core@latest
  vitest: npm:@voidzero-dev/vite-plus-test@latest

或者,如果您使用 Yarn:

json 复制代码
"resolutions": {
  "vite": "npm:@voidzero-dev/vite-plus-core@latest",
  "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
}
相关推荐
鬼手点金几秒前
如何选择模型
java·前端·人工智能·git·深度学习
恋猫de小郭2 分钟前
Dart 3.15 新特性:this 终于支持类型提升了
android·前端·flutter
IT_陈寒17 分钟前
Vue开发实战:从入门到精通
前端·人工智能·后端
znnnk33 分钟前
2026 前端工程化新纪元:Rust 重塑工具链,AI Agent 接管流水线
前端·人工智能·rust
王大师王文峰43 分钟前
HTML 入门到进阶:语义化标签、表单与多媒体一篇打通【语义化布局、表单校验、video/audio、Canvas、无障碍与 SEO】
前端·css·node.js·html·css3·jquery·html5
风骏时光牛马1 小时前
AI_Coding:智能代码创作助手
前端
剪刀石头布啊9 小时前
vue-react为何要虚拟dom
前端
剪刀石头布啊10 小时前
ahooks常用的一些库,我们使用一下
前端
剪刀石头布啊10 小时前
从git更新本地提交记录到更新已经推送到远端记录
前端
Flynt12 小时前
axios 被投毒半年后,我把 npm 的"安全防线"实测了一遍:最信任的 SHA512 是安慰剂
前端·npm·node.js