Vue2项目中使用Vite前端构建

1. 前置条件

Node版本要求:必须node 18+以上

vite 配置:

Vue版本 < 2.7:安装vite-plugin-vue2

Vue版本 > 2.7:安装@vitejs/plugin-vue2

2. 安装组件

js 复制代码
vue < 2.7:
npm install vite vite-plugin-html vite-plugin-vue2 --save-dev

vue > 2.7
npm install vite vite-plugin-html @vitejs/plugin-vue2 --save-dev

3. 操作

新建并编辑vite.config.js

js 复制代码
// vue<2.7
// 导入 Vite 的 defineConfig 函数,用于定义配置对象
import { defineConfig } from "vite";

// 导入 Vite 插件,用于支持 Vue 2.x 项目
import { createVuePlugin } from "vite-plugin-vue2";

// 导入 Vite 插件,用于处理 HTML 文件并支持 EJS 模板语法
import { createHtmlPlugin } from "vite-plugin-html";

// 使用 defineConfig 定义 Vite 配置
export default defineConfig({
  // 配置插件
  plugins: [
    // 启用 Vue 2.x 支持插件
    createVuePlugin(),

    // 启用 HTML 文件处理插件
    createHtmlPlugin({
      // 指定项目的入口文件(通常是 src/main.js)
      // 配置后,Vite 会自动在生成的 HTML 文件中注入对该入口文件的引用
      entry: "src/main.js",

      // 指定 HTML 模板文件(默认是 index.html)
      // 如果模板文件不在根目录,可以在这里指定路径
      template: "index.html",

      // 配置需要注入到 HTML 文件中的数据
      inject: {
        data: {
          // 基础路径变量,可以在 HTML 中使用 <%= BASE_URL %> 引用
          // 例如:<link rel="icon" href="<%= BASE_URL %>favicon.ico">
          BASE_URL: "/",

          // 模拟 Webpack 的 html-webpack-plugin 行为
          // 可以在 HTML 中使用 <%= htmlWebpackPlugin.options.title %> 引用
          htmlWebpackPlugin: {
            options: {
              title: "vue2 使用 vite", // 页面标题
            },
          },

          // 自定义变量,可以在 HTML 中使用 <%= title %> 引用
          title: "vue2 使用 vite",
        },
      },
    }),
  ],

  // 配置模块解析规则
  resolve: {
    // 配置路径别名
    alias: [
      {
        // 将 @ 映射到 /src 目录
        // 例如:import MyComponent from '@/components/MyComponent.vue'
        find: "@",
        replacement: "/src",
      },
    ],
  },
});
js 复制代码
// vue > 2.7
// 导入 Vite 的 defineConfig 函数,用于定义配置对象
import { defineConfig } from "vite";

// 导入 Vite 插件,用于支持 Vue 2.7 及以上版本
// 注意:Vue 2.7 及以上版本使用 @vitejs/plugin-vue2
import vue from "@vitejs/plugin-vue2";

// 导入 Vite 插件,用于处理 HTML 文件并支持 EJS 模板语法
import { createHtmlPlugin } from "vite-plugin-html";

// 使用 defineConfig 定义 Vite 配置
export default defineConfig({
  // 配置插件
  plugins: [
    // 启用 Vue 2.7 及以上版本支持插件
    vue(),

    // 启用 HTML 文件处理插件
    createHtmlPlugin({
      // 指定项目的入口文件(通常是 src/main.js)
      // 配置后,Vite 会自动在生成的 HTML 文件中注入对该入口文件的引用
      entry: "src/main.js",

      // 指定 HTML 模板文件(默认是 index.html)
      // 如果模板文件不在根目录,可以在这里指定路径
      template: "index.html",

      // 配置需要注入到 HTML 文件中的数据
      inject: {
        data: {
          // 基础路径变量,可以在 HTML 中使用 <%= BASE_URL %> 引用
          // 例如:<link rel="icon" href="<%= BASE_URL %>favicon.ico">
          BASE_URL: "/",

          // 模拟 Webpack 的 html-webpack-plugin 行为
          // 可以在 HTML 中使用 <%= htmlWebpackPlugin.options.title %> 引用
          htmlWebpackPlugin: {
            options: {
              title: "vue2 使用 vite", // 页面标题
            },
          },

          // 自定义变量,可以在 HTML 中使用 <%= title %> 引用
          title: "vue2 使用 vite",
        },
      },
    }),
  ],

  // 配置模块解析规则
  resolve: {
    // 配置路径别名
    alias: [
      {
        // 将 @ 映射到 /src 目录
        // 例如:import MyComponent from '@/components/MyComponent.vue'
        find: "@",
        replacement: "/src",
      },
    ],
  },
});

4. 编辑 package.json脚本

js 复制代码
  "scripts": {
    "serve": "vite --host",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

5. 总结

  • Vite 的优势:Vite 提供了更快的开发服务器启动速度和热更新速度,适合现代前端开发。
markdown 复制代码
-   Vue < 2.7 使用 `vite-plugin-vue2`。
-   Vue > 2.7 使用 `@vitejs/plugin-vue2`。
  • HTML 模板处理 :通过 vite-plugin-html 插件,可以在 HTML 文件中使用 EJS 语法注入变量(如页面标题、基础路径等)。

  • 路径别名 :通过配置 resolve.alias,简化文件引用路径(如 @ 映射到 /src

相关推荐
明仔的阳光午后3 小时前
React 入门 01:快速写一个React的HelloWorld项目
前端·javascript·react.js·前端框架·reactjs·react
sorryhc4 小时前
Webpack中的插件流程是怎么实现的?
前端·webpack·架构
残冬醉离殇4 小时前
原来dom树就是AST!!!
前端
~无忧花开~4 小时前
掌握Axios:前端HTTP请求全攻略
开发语言·前端·学习·js
橙某人4 小时前
Vue3 + Pinia 移动端Web应用:页面缓存策略解决方案💡
前端·javascript·vue.js
小Pawn爷5 小时前
构建Django的Web镜像
前端·python·docker·django
Sailing5 小时前
🚀🚀 从前端到AI Agent开发者,只差这一篇入门指南
前端·后端·ai编程
草帽lufei5 小时前
轻松上手WSL安装与使用
linux·前端·操作系统
TimelessHaze5 小时前
🚀 一文吃透 React 性能优化三剑客:useCallback、useMemo 与 React.memo
前端·javascript·react.js
长存祈月心5 小时前
Rust 迭代器适配器
java·服务器·前端