Vite Plus 终于放大招!一行命令,直接迁移项目!

平时写前端,项目里总要堆一堆工具:启动服务用vite、测试靠vitest、格式化、校验、库打包各一套脚本。 每个仓库配置不一样,新人上手麻烦,团队统一规范更是头疼。

现在 VoidZero 正式推出 Vite+ Beta,把整条开发链路整合到一起,不用手动拼凑工具链。

Vite+ 到底解决什么问题

痛点1:工具零散,命令记不过来

不用分别配置启动、格式化、校验、测试、打包脚本,统一用 vp 指令全覆盖

arduino 复制代码
vp dev    启动热更新开发服务vp check  格式化+代码校验+TS类型检查一步到位vp test   运行单元测试vp build  生产环境打包vp pack   标准化类库打包vp run    带智能缓存执行项目脚本

痛点2:团队项目配置参差不齐

  • 所有项目工具版本自动统一,杜绝本地正常、CI报错的环境差异

  • 通用配置可跨项目复用,减少重复造轮子

  • 新人拉取代码无需复杂初始化,开箱即可开发

  • 本地开发、流水线共用同一套命令,线上线下行为完全一致

痛点3:不破坏原有Vite生态

现有全部 Vite插件完美兼容,底层依旧能使用你习惯的包管理器 Vite+仅做统一调度层,不会替换大家熟悉的开发工具

基础优势补充

MIT完全开源,无框架绑定,React/Vue/Svelte/原生JS全都适配,CLI工具、组件库、业务网页项目通用。

已经有大量项目在用

落地规模远超官方预期,1300+公开仓库 接入 vite-plus(不含私有项目、全局CLI安装量)。 下载量暴涨:2026年1月仅4600次下载,预测7月可达330万

不少热门开源项目完成迁移:LLM平台Dify、Notion风编辑器BlockNote、Next兼容框架vinext、多端UI库Inkline、npm镜像工具npmx等。 npmx团队反馈:接入后本地开发、代码评审、CI构建速度都有明显提升。

距离1.0正式版还有这些规划

当前Beta版本稳定性可靠,但功能仍在持续完善,上线1.0前重点开发:

  • vp run 远程缓存

  • GitLab CI专用一键部署脚本 setup-vp

  • 拓宽各类框架、Vite插件兼容范围

  • 适配更多老旧项目迁移场景

  • 上线官方Homebrew安装渠道

  • 完善文档、优化报错诊断提示

官方会持续收集社区反馈,补齐兼容短板,打磨完成后发布 Vite+ 1.0 正式版

快速上手试一下

一、全局安装 vp 命令

Windows(PowerShell 推荐)

arduino 复制代码
irm https://vite.plus/ps1 | iex

macOS / Linux

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

小提示:如果打开cmd执行会报错,按下 Win+X 选择PowerShell再运行安装命令即可,终端提示无报错就是安装成功。

二、两种项目接入方式

新建空白项目

lua 复制代码
vp create

现有Vite项目一键迁移

复制代码
vp migrate

提醒:迁移前会展示全部改动,但大型复杂项目仍需少量手动调整,线上生产项目迁移前务必查看官方迁移指南。

三、统一配置文件 vite.config.ts

Vite+把所有工程化配置收拢到单文件,不用散落 vite、eslint、prettier、vitest 一堆配置文件。

最简基础模板

php 复制代码
import { defineConfig } from'vite-plus';exportdefault defineConfig({server: {},build: {},preview: {},test: {},lint: {},fmt: {},run: {},pack: {},staged: {},});

给大家一份可直接复制的完整Vue+TS实战配置,包含代理、路径别名、自动导入、单元测试、代码格式化、提交校验全能力:

css 复制代码
import { defineConfig, loadEnv } from'viteplus';import path from'path';import vue from'@vitejs/plugin-vue';import vueJsx from'@vitejs/plugin-vue-jsx';type Env = {  VITE_API_BASE_URL: string;  VITE_PORT: number;  VITE_OPEN: boolean;};exportdefault defineConfig(({ mode, command }) => {const env = loadEnv<Env>(mode, process.cwd(), 'VITE_');const isProduction = command === 'build';return {    root: process.cwd(),    base: isProduction ? '/' : '/',    // 开发服务    server: {      port: env.VITE_PORT || 3000,      open: env.VITE_OPEN || false,      cors: true,      host: '0.0.0.0',      proxy: {        '/api': {          target: env.VITE_API_BASE_URL,          changeOrigin: true,          rewrite: (path) => path.replace(/^\/api/, ''),        },      },    },    // 生产打包    build: {      outDir: 'dist',      assetsDir: 'assets',      sourcemap: !isProduction,      minify: isProduction ? 'esbuild' : false,      rollupOptions: {        output: {          manualChunks: {            vue: ['vue', 'vue-router', 'pinia'],            ui: ['element-plus'],          },        },      },      compress: {        enabled: isProduction,        format: 'gzip',        threshold: 10240,      },    },    // 路径别名    resolve: {      alias: {        '@': path.resolve(__dirname, 'src'),      },      extensions: ['.vue', '.ts', '.tsx', '.js', '.jsx', '.json'],    },    // 约定式路由    router: {      dir: 'src/views',      mode: 'history',      exclude: ['**/components/**'],      lazy: true,    },    // API自动导入    imports: {      vue: true,      pinia: true,      vueRouter: true,      dts: 'src/auto-imports.d.ts',    },    // 全局SCSS变量    css: {      preprocessorOptions: {        scss: {          additionalData: `@import "@/styles/variables.scss";`,        },      },    },    // 插件    plugins: [      vue(),      vueJsx(),    ],    // Vitest单元测试    test: {      framework: 'vitest',      include: ['src/**/*.{test,spec}.{js,ts,vue}'],      environment: 'jsdom',      coverage: {        enabled: mode === 'test',        reporter: ['text', 'html', 'lcov'],      },      setupFiles: ['src/test/setup.ts'],    },    // 代码校验Oxlint    lint: {      include: ['src/**/*.{js,ts,vue,tsx,jsx}'],      fix: true,      config: {        parser: 'vue-eslint-parser',        parserOptions: { parser: '@typescript-eslint/parser' },        extends: ['eslint:recommended', 'plugin:vue/vue3-recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],        rules: {          'vue/script-setup-uses-vars': 'error',          '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],        },      },    },    // 代码格式化Oxfmt    fmt: {      include: ['src/**/*.{js,ts,vue,tsx,jsx,json,scss,md}'],      write: true,      config: {        printWidth: 120,        tabWidth: 2,        singleQuote: true,        semi: true,        trailingComma: 'es5',        vueIndentScriptAndStyle: true,      },    },    // 任务脚本调度    run: {      scripts: {        dev: { command: 'viteplus dev', env: 'development', args: ['--host', '0.0.0.0'] },        build: { command: 'viteplus build', env: 'production' },        test: { command: 'viteplus test', env: 'test', watch: true },      },    },    // 类库打包    pack: {      type: 'app',    },    // git提交前置校验    staged: {      rules: {        '*.{js,ts,vue}': ['viteplus lint', 'viteplus fmt'],        '*.{scss,json,md}': ['viteplus fmt'],      },      blockCommit: true,    },  };});

Vite+ 一路走来的变化

早前官方放出 Vite+ Alpha 内测版,面向全球开发者征集真实项目测试反馈。

内测阶段迭代十多个版本,合并500+代码PR ,落地180多处优化与bug修复 。 配套底层工具同步更新:Vite 8.1、Rolldown 1.0、Oxlint、Oxfmt 全部升级,补齐多框架、多语法支持。

升级Beta后稳定性大幅提升,新增企业模板、智能缓存、全平台兼容、项目迁移工具,完全可以投入日常开发使用。

相关推荐
YFF菲菲兔14 小时前
Environment API 总述
vite
至乐活着20 小时前
Vite 构建工具原理解析与实战:从 ES Module 到极速 HMR
vite·热更新·构建工具·前端工程化·es module
linsk19981 天前
React18、19如何兼容 IE9、IE10
react·rollup·vite·兼容·ie
夕夕木各5 天前
从第一个 PR 到 Vite 官方中文文档维护者
github·vite
布兰妮甜6 天前
从 0 搭建企业级 Vue3/Vite 脚手架(规范、eslint、husky、打包、环境变量全流程)
typescript·vue3·vite·脚手架·前端工程化
HexCIer8 天前
面向未来的原子化 CSS:UnoCSS 核心架构分析与 Tailwind CSS 现状
前端·css·vite
触底反弹9 天前
🔥 保姆级教程|SSE + BFF + 跨域三件套,从零实现 ChatGPT 流式输出(附完整代码)
人工智能·node.js·vite
先吃饱再说9 天前
LLM 流式输出的“中间商”方案:BFF 层到底在做什么?
llm·vite
小林ixn10 天前
从BFF到SSE:我在Vue项目里藏了个“AI翻译官”
前端·vue.js·vite
还是大剑师兰特15 天前
Vite6 + Vue3 + TS 完整版标准配置模板
vite·大剑师·vite6配置