构建工具vite详解


前言

Vite是新一代的前端构建工具,在尤雨溪开发Vue3.0的时候诞生。类似于Webpack+ Webpack-dev-server。其主要利用浏览器ESM特性导入组织代码,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随起随用。生产中利用Rollup作为打包工具,号称下一代的前端构建工具。

一、vite和webpack区别

Webpack 和 Vite 都是现代前端开发中广泛使用的构建工具,但它们在设计理念、实现方式以及性能表现上存在一些显著的区别。

1.启动速度:

  • Webpack:在启动项目时,Webpack 需要分析项目所有依赖关系,然后打包成一个或多个文件,这可能导致启动时间较长,尤其是对于大型项目。

  • Vite:Vite 利用了浏览器对 ES module 的原生支持,在开发环境下不会对整个项目进行打包,而是按需编译,这使得 Vite 的启动速度通常比 Webpack 快得多

2.构建方式:

  • Webpack:Webpack 是基于 Node.js 运行的,它在单线程中执行打包任务,对于大型项目,构建速度可能会受到限制。

  • Vite:Vite 在开发环境下使用 esbuild 进行预构建,生产环境下使用 Rollup 进行打包,esbuild 是用 Go 语言编写的,可以充分利用多核 CPU 的优势,从而加快构建速度

3.热更新(HMR):

  • Webpack:Webpack 的热更新机制会在文件变更时重新打包整个项目,这在大型项目中可能不够高效。
  • Vite:Vite 实现了一种更高效的热更新机制,当文件变更时,Vite 只对变更的模块进行重新编译和替换,从而提供更快的反馈

4.生产环境打包

  • Webpack:Webpack 生产环境下的打包是其核心功能之一,提供了丰富的优化选项,如代码分割、压缩等。

  • Vite:Vite 在生产环境下使用 Rollup 进行打包,Rollup 生成的文件通常更小,但 Vite 的插件 API 与使用 esbuild 作为打包器不兼容,因此目前使用 Rollup

5.配置复杂性:

  • Webpack:Webpack 提供了高度可配置的接口,可以满足各种复杂的构建需求,但这也意味着配置可能会变得复杂,特别是对于新手。

  • Vite:Vite 设计为更易于配置和使用,内置了许多常用的功能,减少了配置的复杂性,使得开发者可以更快地开始项目开发

二、使用步骤

1.安装Vite CLI工具

npm init vite@latest

2.进入创建的项目文件夹

cd <project-name>

3.安装依赖

npm install

4.启动开发服务器

npm run dev

三、vite.config基本配置

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'//按需自动加载API插件
import Components from "unplugin-vue-components/vite"
import path from 'path'

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({ imports: ["vue", "vue-router"],}),
    Components()
  ],
  // 配置开发服务器
  server: {
    port: 3000, // 监听的端口,默认 3000
    host: '0.0.0.0',// 监听的主机名,设置为 0.0.0.0 允许外部访问
    https: false,
    proxy: {
      '/api': {
        target: 'http://localhost:5000',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },
  resolve: {
    //别名配置
    alias: {
      '@': path.resolve(__dirname, 'src')
    },
    extensions: ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']//引入文件的时候,可以忽略掉以下文件后缀
  },
  // CSS 相关配置
  css: {
    devSourcemap: true, // 开发中能够快速找到某样式对应的样式文件
     //预处理器配置项
     preprocessorOptions:{
      less:{
        javascriptEnabled: true,// 是否开启 JavaScript 支持
        math: "always" //支持直接使用表达式 width: 100px - 20px;得到值为width:80px;
      }
    }
  },
})

08-03
### Vite 使用指南与常见问题解决 #### Vite 插件安装与配置 对于新手来说,`vite-plugin-dts` 是一个非常有用的插件,它可以为基于 Vite 构建的库生成 `.d.ts` 类型声明文件[^1]。要安装此插件,可以通过 `npm` 或 `yarn` 执行以下命令: ```bash npm install vite-plugin-dts --save-dev # 或者 yarn add vite-plugin-dts --dev ``` 接着,在项目的 Vite 配置文件(通常命名为 `vite.config.js` 或 `vite.config.ts`)中引入并使用该插件: ```javascript import dts from 'vite-plugin-dts'; export default { plugins: [ dts({ insertTypesEntry: true, // 可选参数,用于插入类型入口 }), ], }; ``` 通过以上设置,当运行构建脚本时,插件会自动从源码中提取类型信息并生成对应的 `.d.ts` 文件。 --- #### 压缩插件配置 如果希望在生产环境中优化资源大小,可以考虑使用 `vite-plugin-compress` 来实现 Gzip 或 Brotli 压缩功能[^2]。以下是具体的安装方法和基本配置示例: ```bash npm install vite-plugin-compress --save-dev # 或者 yarn add vite-plugin-compress --dev ``` 随后将其集成到 Vite 配置文件中: ```javascript import compress from 'vite-plugin-compress'; export default { plugins: [ compress({ algorithm: 'gzip', // 设置算法,默认支持 gzip 和 brotliCompress threshold: 1024 * 5, // 超过指定字节才启用压缩 ext: '.gz', // 输出扩展名 }), ], }; ``` 上述代码片段展示了如何自定义压缩选项,比如调整阈值或更改目标文件扩展名。 --- #### 同时使用 Vite 和 Express 为了满足更复杂的开发需求,有时需要将前端框架 Vite 与后端服务 Express 结合起来工作[^3]。此时可借助第三方工具包 `vite-express` 实现无缝衔接。其核心优势在于允许开发者在同一进程中启动两者的服务实例,从而减少环境切换带来的麻烦。 首先确保已安装必要的依赖项: ```bash npm install express vite-express --save # 或者 yarn add express vite-express ``` 之后按照官方文档说明修改服务器逻辑即可完成初始化操作。 --- #### 总结 综上所述,无论是针对静态资产处理还是动态交互场景下的技术选型,围绕 Vite 展开的一系列生态组件都能够提供强大助力。合理运用这些辅助手段不仅有助于提升工作效率,还能显著改善最终用户体验质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单灬爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值