【转】vue3 打包时生成分析报告

一、vite 构建的 vue3 项目生成打包报告

1、下载 visualizer 插件

npm install rollup-plugin-visualize -D

2、在 vite.config.js 配置 rollup-plugin-visualizer 插件

import { fileURLToPath, URL } from 'node:url'

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

import { visualizer } from 'rollup-plugin-visualizer' 
const buildReportplugin =
  process.env.npm_lifecycle_event === 'build:report'
    ? visualizer({ open: true, brotliSize: true, gzipSize: true, filename: 'dist/report.html' })
    : null
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(),buildReportplugin],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

3、在 package.json 文件的 scripts 属性下添加

"build:report": "vite build",

4、运行命令生成打包报告
打包文件位置:dist/report.html

npm run build:report

二、vue脚手架 @vue/cli 构建的 vue3 项目生成打包报告

1、在 package.json 文件的 scripts 属性下添加

"build:report": "vue-cli-service build --report",

2、运行命令生成打包报告
打包文件位置:dist/report.html

npm run build:report

3、用浏览器打开 dist/report.html 查看打包报告

<think>好的,我现在需要帮助用户解决如何在Vue3项目中打包生成dist目录的压缩文件的问题。首先,我得回忆一下Vue项目打包的基本流程,尤其是Vue3结合Vite的情况。用户提到了参考引用中的内容,特别是引用[2]里的vite配置和插件使用,这可能是一个关键点。 用户的问题可以分为两部分:打包生成dist目录和自动生成压缩包。打包部分对于Vue3项目来说,通常是运行npm run build命令,这会调用Vite的构建流程,生成dist文件夹。这一步应该比较直接,但用户可能想确认是否有特殊配置需要注意,比如路径问题,引用[1]提到打包的资源相对路径,可能需要检查vite.config.js中的相关设置,比如base路径或者别名配置。 然后是生成压缩包的部分。根据引用[2]中的示例,用户需要配置一个Vite插件来自动在打包后压缩dist目录。这里可能需要使用到JSZip或者类似的库,或者利用Node.js的文件系统模块和archiver等工具来创建zip文件。用户提供的代码示例中有一个自定义插件myPlugin,导入自&#39;./zip&#39;,这说明需要自己编写一个插件,或者使用现有的社区插件。 接下来,我需要考虑如何实现这个插件。Vite的插件系统基于Rollup,可以在构建的生命周期钩子中执行操作。例如,在build阶段的closeBundle钩子中,当打包完成后,执行压缩dist目录的任务。这候需要使用Node.js的child_process模块调用系统命令,或者使用archiver这样的库来编程生成zip文件。 另外,用户可能对如何编写这个插件不太清楚,所以需要给出具体的代码示例。比如,在vite.config.js中添加一个插件,该插件在构建完成后执行压缩操作。同,需要确保安装了必要的依赖,比如archiver或者fs-extra,用于处理文件和压缩。 可能还需要考虑不同操作系统的兼容性问题,比如在Windows和Unix-like系统中路径的处理方式。此外,压缩后的文件应该放在哪里,是否需要删除dist目录后再压缩,或者保留原文件夹。这些都是需要注意的细节。 总结一下,步骤应该是: 1. 正常打包生成dist目录。 2. 使用Vite插件在构建完成后自动压缩dist为zip文件。 3. 提供具体的插件代码示例,说明如何实现这一功能。 需要验证这些步骤是否正确,确保引用的资料准确。例如,引用[2]中的示例是否正确,是否需要调整。同,提醒用户安装必要的依赖,并检查路径配置是否正确,避免出现文件找不到的错误。</think>在Vue3项目中实现打包自动生成dist压缩文件的操作步骤如下: ### 一、基础打包配置 1. 在`vite.config.js`中已包含标准Vue3项目配置: ```javascript import { defineConfig } from &#39;vite&#39; import vue from &#39;@vitejs/plugin-vue&#39; export default defineConfig({ plugins: [vue()], build: { outDir: &#39;dist&#39; // 默认输出目录 } }) ``` 执行`npm run build`即可生成dist目录[^1] ### 二、实现自动压缩(核心步骤) #### 方法1:使用archiver库 1. 安装依赖: ```bash npm install archiver fs-extra --save-dev ``` 2. 创建`zip-plugin.js`自定义插件: ```javascript import path from &#39;path&#39; import fs from &#39;fs&#39; import archiver from &#39;archiver&#39; export default function zipPlugin() { return { name: &#39;zip-dist&#39;, closeBundle() { const source = path.resolve(&#39;dist&#39;) const output = fs.createWriteStream(&#39;dist.zip&#39;) const archive = archiver(&#39;zip&#39;, { zlib: { level: 9 } }) archive.directory(source, false) archive.pipe(output) archive.finalize() console.log(&#39;\x1b[32m&#39;, &#39;✓ dist.zip created&#39;) } } } ``` #### 方法2:使用shell命令(跨平台方案) ```javascript import { execSync } from &#39;child_process&#39; export default function zipPlugin() { return { name: &#39;zip-dist&#39;, closeBundle() { try { execSync(&#39;cd dist && bestzip ../dist.zip ./*&#39;) console.log(&#39;✓ ZIP created using system command&#39;) } catch (error) { console.error(&#39;ZIP creation failed:&#39;, error) } } } } ``` ### 三、集成到Vite配置 ```javascript // vite.config.js import { defineConfig } from &#39;vite&#39; import vue from &#39;@vitejs/plugin-vue&#39; import zipPlugin from &#39;./zip-plugin&#39; // 引入自定义插件 export default defineConfig({ plugins: [ vue(), zipPlugin() // 添加压缩插件 ] }) ``` ### 四、执行构建 ```bash npm run build ``` 构建完成后会在项目根目录生成`dist.zip`压缩包[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值