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

相关推荐
飞天狗1 天前
Webpack 切 Vite,不是把配置换名字那么简单
webpack·vite
木木的木云3 天前
从零构建微前端框架:PavilionMfe 设计揭秘
前端·架构·vite
ejinxian4 天前
Vite+ 发布新版本-整合前端工具链
前端·vite·vite+
晓得迷路了9 天前
栗子前端技术周刊第 135 期 - Vite 8.1、Rspack 2.1、Babel 8.0...
前端·javascript·vite
ZhengEnCi10 天前
Q04-Vite禁用CSS代码分割-解决生产环境样式加载顺序混乱问题
前端·vue.js·vite
PedroQue9910 天前
Vite插件体系1.0.0:API稳定,生产就绪
前端·vite
PedroQue9912 天前
Vite插件v0.2.6:架构优化与自动化升级
前端·vite
大家的林语冰13 天前
👍 尤大重学 Webpack,Vite 8.1 再进化,打包模式复活!
前端·javascript·vite
米丘18 天前
vite8 vite preview 命令做了什么?
node.js·vite