Skip to content

Commit 360fbab

Browse files
committed
refactor: 使用 vite-plugin-archiver 插件代替框架存档功能
1 parent 92f2ac2 commit 360fbab

File tree

3 files changed

+96
-36
lines changed

3 files changed

+96
-36
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
"@unocss/eslint-plugin": "^0.62.3",
5858
"@vitejs/plugin-vue": "^5.1.3",
5959
"@vitejs/plugin-vue-jsx": "^4.0.1",
60-
"archiver": "^7.0.1",
6160
"autoprefixer": "^10.4.20",
6261
"boxen": "^8.0.1",
6362
"bumpp": "^9.5.2",
@@ -90,6 +89,7 @@
9089
"unplugin-vue-components": "^0.27.4",
9190
"vite": "^5.4.2",
9291
"vite-plugin-app-loading": "^0.3.0",
92+
"vite-plugin-archiver": "^0.1.1",
9393
"vite-plugin-banner": "^0.7.1",
9494
"vite-plugin-compression2": "^1.2.0",
9595
"vite-plugin-fake-server": "^2.1.1",

pnpm-lock.yaml

Lines changed: 89 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vite/plugins.ts

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import path from 'node:path'
22
import process from 'node:process'
3-
import fs from 'node:fs'
4-
import dayjs from 'dayjs'
53
import type { PluginOption } from 'vite'
64
import vue from '@vitejs/plugin-vue'
75
import vueJsx from '@vitejs/plugin-vue-jsx'
@@ -11,17 +9,13 @@ import Unocss from 'unocss/vite'
119
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
1210
import { vitePluginFakeServer } from 'vite-plugin-fake-server'
1311
import { compression } from 'vite-plugin-compression2'
14-
import archiver from 'archiver'
12+
import Archiver from 'vite-plugin-archiver'
1513
import AppLoading from 'vite-plugin-app-loading'
1614
import TurboConsole from 'unplugin-turbo-console/vite'
1715
import banner from 'vite-plugin-banner'
1816
import boxen from 'boxen'
1917
import picocolors from 'picocolors'
2018

21-
function sleep(ms) {
22-
return new Promise(resolve => setTimeout(resolve, ms))
23-
}
24-
2519
export default function createVitePlugins(viteEnv, isBuild = false) {
2620
const vitePlugins: (PluginOption | PluginOption[])[] = [
2721
vue(),
@@ -67,35 +61,15 @@ export default function createVitePlugins(viteEnv, isBuild = false) {
6761
}),
6862

6963
// https://github.com/nonzzz/vite-plugin-compression
70-
isBuild && viteEnv.VITE_BUILD_COMPRESS.split(',').includes('gzip') && compression(),
71-
isBuild && viteEnv.VITE_BUILD_COMPRESS.split(',').includes('brotli') && compression({
64+
viteEnv.VITE_BUILD_COMPRESS?.split(',').includes('gzip') && compression(),
65+
viteEnv.VITE_BUILD_COMPRESS?.split(',').includes('brotli') && compression({
7266
exclude: [/\.(br)$/, /\.(gz)$/],
7367
algorithm: 'brotliCompress',
7468
}),
7569

76-
(function () {
77-
let outDir: string
78-
return {
79-
name: 'vite-plugin-archiver',
80-
apply: 'build',
81-
configResolved(resolvedConfig) {
82-
outDir = resolvedConfig.build.outDir
83-
},
84-
async closeBundle() {
85-
if (['zip', 'tar'].includes(viteEnv.VITE_BUILD_ARCHIVE)) {
86-
await sleep(1000)
87-
const archive = archiver(viteEnv.VITE_BUILD_ARCHIVE, {
88-
...(viteEnv.VITE_BUILD_ARCHIVE === 'zip' && { zlib: { level: 9 } }),
89-
...(viteEnv.VITE_BUILD_ARCHIVE === 'tar' && { gzip: true, gzipOptions: { level: 9 } }),
90-
})
91-
const output = fs.createWriteStream(`${outDir}.${dayjs().format('YYYY-MM-DD-HH-mm-ss')}.${viteEnv.VITE_BUILD_ARCHIVE === 'zip' ? 'zip' : 'tar.gz'}`)
92-
archive.pipe(output)
93-
archive.directory(outDir, false)
94-
archive.finalize()
95-
}
96-
},
97-
}
98-
})(),
70+
viteEnv.VITE_BUILD_ARCHIVE && Archiver({
71+
archiveType: viteEnv.VITE_BUILD_ARCHIVE,
72+
}),
9973

10074
AppLoading('loading.html'),
10175

0 commit comments

Comments
 (0)