新的打包工具 Rsbuild 尝鲜:Vue2-cli 项目迁移 Rsbuild

本文主要是介绍新的打包工具 Rsbuild 尝鲜:Vue2-cli 项目迁移 Rsbuild,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当前时间 2024-08-31

看到一个新的打包工具,于是想试一试,这里是官网

在这里插入图片描述

在这里插入图片描述


测试

用过 vue-cli 的同志们应该有所感受,启动项目挺慢的,我这个项目不太大,第一次启动是最慢的,之后启动快了一些些,而且也是编译了三四次,也花费了六七秒的时间(第一次的时间大概有10多秒,我没录下来)

请添加图片描述

再试试 rsbuild,用了不到 4s,不过对比第一次冷启动还是快了不少的

请添加图片描述


迁移过程

不同脚手架的项目迁移,具体参照的是 官网的迁移

因为我是 Vue2-cli 的项目,所以参考了下面的链接:

对于使用 Vue CLI 的项目,可以参考 Rsbuild - 从 Vue CLI 迁移

只是添加了一个 rsbuild.config.js 文件,还有添加了几个依赖包

在这里插入图片描述
我的 rsbuild.config.js 里主要配置了 pluginVue2 以及静态资源的 alias(路径别名)

什么是 alias :路径别名(alias)允许开发者为模块定义别名,以便于在代码中更方便的引用它们。当你想要使用一个简短、易于记忆的名称来代替冗长复杂的路径时,这将非常有用。

// rsbuild.config.js
import { defineConfig } from "@rsbuild/core";
import { pluginVue2 } from "@rsbuild/plugin-vue2";
import path from "path";export default defineConfig({html: {template: "./public/index.html",},plugins: [pluginVue2()],source: {// Specify the entry fileentry: {index: "./src/main.js",},alias: {"@": path.resolve(__dirname, "src"),"@assets": path.resolve(__dirname, "src/assets"),"/static": path.resolve(__dirname, "public/static"),},},output: {distPath: {root: 'build',js: 'resource/js',},},
});

新增的依赖也挺少的:

在这里插入图片描述


热更新

两者都还可以,一个0.1秒左右,一个 0.4秒左右

rsbuild 的热更新如下:
在这里插入图片描述

vue-cli-serve 热更新如下:

在这里插入图片描述

打包测试

同时打包:
请添加图片描述
感觉处理器资源会有抢夺,所以在试试分开打包:

vue-cli 的打包:
请添加图片描述
rsbuild 的打包:

请添加图片描述
速度大概是 8s vs 4.39s (只测了一轮)

体积是图片如下:
在这里插入图片描述

打包速度打包体积
Rsbuild4.39s7MB
Vue2-cli8s7.3MB

和之前的打包工具共存

因为是在尝鲜阶段,所以想着 vue-clirsbuild 共存,我测试了一下,当前组合是可以的

在这里插入图片描述

问题

Q1: 打包的时候报错: Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin’

 Cannot find module 'webpack/lib/rules/BasicEffectRulePlugin'

在这里插入图片描述
安装这个:

npm install vue-loader@latest

这篇关于新的打包工具 Rsbuild 尝鲜:Vue2-cli 项目迁移 Rsbuild的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124005

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于