当前位置: 首页 > news >正文

vue2 升级为 vite 打包

VUE2 中使用 Webpack 打包、开发,每次打包时间太久,尤其是在开发的过程中,本文记录一下 VUE2 升级Vite 步骤。
在这里插入图片描述

安装 Vue2 Vite 依赖

dev 依赖

@vitejs/plugin-vue2": "^2.3.3
@vitejs/plugin-vue2-jsx": "^1.1.1
vite": "^5.0.0
#选装,自动添加后缀
vite-plugin-resolve": "^2.5.2

npm 脚本

  "scripts": {"dev": "vite","build": "vite build","serve": "vite preview"},

vite.config.js

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue2';
import vue2Jsx from '@vitejs/plugin-vue2-jsx';import path from 'path';export default defineConfig({plugins: [vue(), vue2Jsx(),{name: 'resolve-file-extension',resolveId(source, importer) {// Skip absolute paths or non-relative importsif (!importer || !source.startsWith('.') || source.includes('?')) {return null;}const extensions = ['.vue', '.js', '.ts', '.jsx', '.tsx']; // Add supported extensionsfor (const ext of extensions) {try {const resolvedPath = require.resolve(source + ext, { paths: [importer] });return resolvedPath;} catch (e) {continue;}}return null;},},],resolve: {extensions: ['.vue', '.js', '.jsx', '.ts', '.tsx'],alias: {'@': path.resolve(__dirname, './src'), // Alias `@` to `src` directory},},server: {host: '0.0.0.0',port: 8080,open: true,proxy: {'/api': {target: 'http://localhost:8090/', // Target server for `/api` requestsrewrite: (path) => path.replace(/^\/api/, '/'), // Remove `/api` prefixchangeOrigin: true, // Handle CORS},},},css: {preprocessorOptions: {less: {modifyVars: {// Uncomment and define your custom LESS variables here// "primary-color": "#377DF6",// "link-color": "#377DF6",},javascriptEnabled: true, // Enable JavaScript in LESS},},},build: {sourcemap: process.env.NODE_ENV === 'development', // Source maps for development},
});

index.html

将 Index.html 从 public 移动到根目录下,与 webpack 相关的去掉。

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="./favicon.ico"><title>TestTTT</title>
</head><body><noscript><strong>We're sorry,work properly without JavaScript enabled.Please enable it to continue.</strong></noscript><div id="app"></div><script type="module" src="/src/main.js"></script><!-- built files will be auto injected -->
</body></html>

jsx

如果你的项目中使用了 jsx,需要在 script 中制定 lang="jsx"

<script lang="jsx">
export default {props:["title", "open", "label"],data() {return {}},
}
</script>

总结

Vue2 升级 Vite 比较顺利,几点要注意的:

  • 用 Vite 5.0,jsx 插件只支持到 Vite 5.0
  • Webpack 语法要移除
  • 其他遇到问题,让豆包把代码修改为 Vite 方式即可
http://www.lryc.cn/news/510265.html

相关文章:

  • FreeSwitch中启用WebRTC
  • R语言的数据类型
  • 基于UNET的图像分类
  • css文字折行以及双端对齐实现方式
  • 华为云语音交互SIS的使用案例(文字转语音-详细教程)
  • 设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
  • 学习笔记(prism--视频【WPF-prism核心教程】)--待更新
  • Kafka无锁设计
  • 【GO基础学习】gin框架路由详解
  • GPIO+TIM(无PWM)实现呼吸灯功能
  • 贪心算法.
  • Linux系统和makefile详解
  • GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
  • 【杂谈】-AI搜索引擎如何改变传统SEO及其在内容营销中的作用
  • PTA数据结构编程题7-1最大子列和问题
  • 深入浅出:AWT的基本组件及其应用
  • MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结
  • WebRTC服务质量(11)- Pacer机制(03) IntervalBudget
  • .NET常用的ORM框架及性能优劣分析总结
  • Ubuntu网络配置(桥接模式, nat模式, host主机模式)
  • 光通信复习
  • 数字化转型中的投资决策:IT平台投资与业务应用投资的思考
  • Linux快速入门-Linux的常用命令
  • 【ORB-SLAM3:相机针孔模型和相机K8模型】
  • Python函数(十二):函数的创建和调用、参数传递、返回值
  • 掌握Docker命令与Dockerfile实战技巧:快速构建高效容器化应用
  • Virtualbox硬盘扩容
  • 10G光纤反射内存卡
  • 信创数据防泄漏中信创沙箱是什么样的安全方案
  • 虚幻引擎结构之TArray