11import path from 'node:path'
22import process from 'node:process'
3- import fs from 'node:fs'
4- import dayjs from 'dayjs'
53import type { PluginOption } from 'vite'
64import vue from '@vitejs/plugin-vue'
75import vueJsx from '@vitejs/plugin-vue-jsx'
@@ -11,17 +9,13 @@ import Unocss from 'unocss/vite'
119import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
1210import { vitePluginFakeServer } from 'vite-plugin-fake-server'
1311import { compression } from 'vite-plugin-compression2'
14- import archiver from 'archiver'
12+ import Archiver from 'vite-plugin- archiver'
1513import AppLoading from 'vite-plugin-app-loading'
1614import TurboConsole from 'unplugin-turbo-console/vite'
1715import banner from 'vite-plugin-banner'
1816import boxen from 'boxen'
1917import picocolors from 'picocolors'
2018
21- function sleep ( ms ) {
22- return new Promise ( resolve => setTimeout ( resolve , ms ) )
23- }
24-
2519export 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 : [ / \. ( b r ) $ / , / \. ( g z ) $ / ] ,
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