Vue Cli 迁移至 Vite

本文讲述了从传统的CLI项目管理到使用Vite进行开发的转变,重点关注了如何调整配置文件、解决require方法不支持、打包错误及动态导入图片的问题,强调了Vite的启动速度快和热加载特性,但初次加载时可能存在白屏等待时间。
摘要由CSDN通过智能技术生成

一、前言

  1. 项目文件一多起来,cli 的话是先将所有文件编译完,再开启服务,启动慢,影响开发体验
  2. 而 Vite 先开服务之后,再按需加载当前页面需要的文件,开发体验就好很多

二、改动的文件

1. package.json

在这里插入图片描述

2. 入口文件调整

  1. cli 是放在 public 目录下的

在这里插入图片描述

  1. vite 是放项目根目录下

在这里插入图片描述

  1. copy public 下的 index.html 到项目根目录下的 index 文件,并引入 main.js 构建

在这里插入图片描述

3. babel.config.js 更改

在这里插入图片描述

4. vite.config.js 配置

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue2';

import path from 'path';
import requireTransform from 'vite-plugin-require-transform';
import commonjs from '@rollup/plugin-commonjs';

export default defineConfig({
	plugins: [
    vue(),
    commonjs(),
    requireTransform({
      fileRegex: /.js$|.vue$/,
		}),
	],
	resolve: {
		extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
		alias: {
			'@': path.resolve(__dirname, './src'),
		},
	},
	build: {
		minify: 'terser',
		terserOptions: {
		  compress: {
		    drop_console: true,
		    drop_debugger: true
		  }
		},
		assetsInlineLimit: 4096 * 500
	},
	css: {
		preprocessorOptions: {
			scss: {
				additionalData: `@import "@/assets/styles/variables.scss";`,
			},
		},
	},
	server: {
		port: 9591,
		open: true,
		host: true,
	},
});


三、问题

1. vite 不能使用 require 方法

  1. 错误image.png
  2. 下载 vite-plugin-require-transform 插件,配置在文章最后

2. 打包错误

  1. 错误
    在这里插入图片描述

  2. 下载 @rollup/plugin-commonjs,将 CommonJS 写法转换为 ESM 供 Rollup 处理,配置在文章最后

  3. 参考:https://blog.csdn.net/AB12543/article/details/132142694

3. require 动态导入图片错误

  1. 错误
    在这里插入图片描述

  2. 原写法
    在这里插入图片描述

  3. 换写法之后正常
    在这里插入图片描述

  4. 参考:https://www.cnblogs.com/zoro-zero/p/14276331.html

四、总结

  1. 踩的坑的话基本 Vite 不支持 CommonJS 写法,导致编译上的错误
  2. 优点
    1. 启动快,不管项目多大,先开启一个服务,去请求当前页面所需文件,将编译好的代码返回
    2. 热加载,当某个文件更新之后,利用浏览器的 ESM 模块及其动态导入特性,重新请求更改后的文件
  3. 缺点:
    1. 第一次启动时,加载页面白屏一段时间,因为是先开服务再去请求当前页面的文件进行编译,需要花些时间
    2. 之后再访问的就好多了,Vite 默认启用了缓存的,一旦资源被加载,它会被缓存起来了
    3. 比如element-ui
      在这里插入图片描述
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值