【webpack转vite】操作流程与问题

	最近在开发一个超级大的管理端项目,每次启动都要在8、9分钟,热更新一次也需要40秒,十分折磨,试过很多提速方法,都没有效果;周二晚上看到了vite-下一代前端开发与构建工具,周三上班就开始从网上翻找教程,经历过无数bug,历经两天,终于解决,特此记录一下所有流程与踩坑经历

一、全局安装wp2vite

npm install -g wp2vite

二、在项目中执行一下命令

执行之前记得安装好依赖:npm install

wp2vite --config=./vue.config.js //你的webpack配置文件

执行完以上命令后再执行一遍:npm install
截止这一步,主要操作搞定

三、项目配置操作

1、删除原有public目录下的index.html文件

2、修改根目录下的index.html,引用自己的main.js文件

<script type="module" src="/src/main.ts"></script>

我的是ts,可自行修改

3、重点:vite.config.js

①设置alias,增加绝对路径@
let alias = {
    '.git': path.resolve(__dirname, './.git'),
    'docker': path.resolve(__dirname, './docker'),
    'docs': path.resolve(__dirname, './docs'),
    'node_modules': path.resolve(__dirname, './node_modules'),
    'public': path.resolve(__dirname, './public'),
    'src': path.resolve(__dirname, './src'),
    '@': path.resolve(__dirname, 'src'),
  }
②设置proxy,就是你的代理

在proxy对象中添加代理
代理
注意此时写法有变,将pathRewrite修改为rewrite,举个栗子

vue.config.js
	'/api': {
        target: `http://localhost:8180`,
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          '^/api': '',
        },
      },
vite.config.js
'/api': {
      target: `http://localhost:8180`, 
      changeOrigin: true,
      ws: true,
      rewrite: (path) => path.replace(/^\/api/, '')
    },

4、require报错

如果你用到了require.context(),请替换为import.meta.globEager(),示范如下

const requires = require.context('@/modules', true, /router\.ts$/);//原有
const requires = import.meta.globEager("@/modules/*/router.ts")//修改后

5、path.resolve报错

先安装依赖

npm install path-browserify --save

修改引入方式为

import path from 'path-browserify'

四、启动项目

npm run dev

五、速度比较

启动速度

vite

vite启动

webpack
实在太慢,不想截图了

热更新速度

biu~bang //超级快

录了视频,但是要转成gif,不想转,改vue页面改完就能生效,都不用刷新页面;改ts文件也是立刻生效,会自动刷新页面

完结撒花

<think>好的,我现在要比较WebpackVite的特点、性能以及使用场景。首先,我需要回顾一下用户提供的引用内容,确保信息准确。用户给出了四个引用,分别从不同的角度对比了WebpackVite,包括构建速度、配置复杂度、生态成熟度、开发模式和应用场景等。 首先,我需要整理WebpackVite各自的特点。根据引用,Webpack是一个成熟的构建工具,适合处理大型复杂项目,拥有丰富的插件生态。而Vite则利用了现代浏览器的ES模块特性,开发模式下启动快,热更新迅速,适合快速开发和中小型项目。 接下来是性能方面。Webpack在开发模式下需要打包整个项目,启动时间较长,但随着项目规模增大,生产构建优化较好。Vite在开发时按需编译,启动快,但生产构建可能依赖Rollup,速度也不错,但可能不如Webpack在复杂场景下的优化。 使用场景部分,引用中提到Webpack适合大型复杂项目,尤其是需要灵活配置和大量自定义的情况。Vite适合快速原型开发、中小项目以及对开发体验要求高的场景。 然后,我需要确保回答的结构清晰,分点对比,同时正确应用LaTeX格式。例如,提到Vite的ES模块加载时,可能需要用数学公式符号,比如$ES模块$,但根据用户指令,变量或技术术语不需要用LaTeX,所以可能不需要。但如果有数学表达式,比如复杂度分析,才需要应用。例如,如果讨论时间复杂度,可以用$O(n)$,但当前内容可能不涉及。 然后需要生成相关问题,根据用户示例,问题应围绕对比的各个方面,比如性能优化、配置差异、适用场景的选择等。 需要检查是否有引用标记正确添加,每个引用结束的位置是否自然。例如,在提到Webpack适合大型项目时,引用[^4]可能适用,而提到Vite的快速热更新时,引用[^1]或可用。 最后,确保回答使用中文,LaTeX格式正确,独立公式用$$...$$,行内用$...$,但当前内容可能较少涉及数学公式,可能需要确认是否有必要的地方使用。例如,构建时间的比较如果有具体数值可能需要,但用户引用中没有提供具体数据,所以可能不需要。 总结回答结构: 1. 概述 2. 核心差异(构建机制、开发模式、配置复杂度、生态) 3. 性能对比(开发/生产) 4. 应用场景 5. 相关问题 现在开始组织内容,确保每个部分引用正确的来源,并在末尾添加相关问题。</think>### Webpack vs Vite: 特点、性能及使用场景对比 #### 一、核心差异对比 1. **构建机制** - **Webpack**:基于打包器模式,开发阶段需将所有模块打包成静态资源,通过`loader`和`plugin`处理依赖优化。这导致项目越大,启动和热更新越慢。 - **Vite**:利用浏览器原生支持ES模块的特性,开发阶段按需编译文件,跳过打包步骤,实现毫秒级启动和快速热更新。 2. **开发模式** - **Webpack**:依赖完整的打包过程,修改代码后需重新构建部分或全部模块,影响开发效率。 - **Vite**:通过`ESM`按需加载,仅编译当前修改的文件,结合原生`HMR`实现即时更新。 3. **配置复杂度** - **Webpack**:配置灵活但复杂,需手动设置`loader`、`plugin`及优化策略,适合有经验的开发者[^3]。 - **Vite**:默认集成常见功能(如TypeScript、CSS预处理),配置简洁,开箱即用[^4]。 4. **生态成熟度** - **Webpack**:插件生态丰富,支持各种定制需求(如代码分割、懒加载),社区资源完善[^2]。 - **Vite**:生态快速发展,依赖Rollup插件兼容,但复杂场景可能需要额外适配[^3]。 --- #### 二、性能对比 | 维度 | Webpack | Vite | |--------------|----------------------------------|-----------------------------------| | **开发启动** | 项目规模越大,启动越慢 | 按需编译,启动极快(毫秒级) | | **热更新** | 部分重建,速度中等 | 原生HMR,更新几乎无延迟[^4] | | **生产构建** | 优化成熟,支持复杂场景(如Tree Shaking) | 依赖Rollup,速度较快但定制性稍弱 | --- #### 三、应用场景 - **Webpack适用场景**: - 大型项目,需深度定制构建流程(如微前端、多入口)。 - 历史项目迁移,依赖特定Webpack插件[^2]。 - **Vite适用场景**: - 快速原型开发或中小型项目,追求开发体验。 - 现代框架(如Vue 3/React)项目,需即时反馈。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值