br-dionysus 1.6.17 → 1.6.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,7 @@ import { defineConfig } from 'vite'
4
4
  import vue from '@vitejs/plugin-vue'
5
5
  import Markdown from 'vite-plugin-md'
6
6
  import VueDevTools from 'vite-plugin-vue-devtools'
7
+ import compressedFiles from '../compressedFiles'
7
8
 
8
9
  export default defineConfig({
9
10
  resolve: {
@@ -18,7 +19,13 @@ export default defineConfig({
18
19
  }),
19
20
  // eslint(),
20
21
  Markdown(),
21
- VueDevTools()
22
+ VueDevTools(),
23
+ {
24
+ name: 'build-complete',
25
+ async writeBundle () {
26
+ // compressedFiles()
27
+ }
28
+ }
22
29
  ],
23
30
  server: {
24
31
  port: 5177
@@ -0,0 +1,63 @@
1
+ import fs from 'fs'// 文件服务
2
+ import archiver from 'archiver'
3
+ import dayjs from 'dayjs'
4
+
5
+ const disDir = 'docs' // 打包之后的dist 目录
6
+ const pJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'))
7
+ let mode: string = '' // 当前打包的模式
8
+ let zipFilePath: string = '' // 压缩文件保存路径
9
+
10
+ // //定义压缩方法
11
+ function files () {
12
+ // 创建输出流
13
+ const output = fs.createWriteStream(zipFilePath)
14
+ // 创建 zip 归档器
15
+ const archive = archiver('zip', {
16
+ zlib: { level: 9 } // 设置压缩级别
17
+ })
18
+ // 将输出流绑定到归档器上
19
+ archive.pipe(output)
20
+ // 添加要归档的 dist 文件夹
21
+ archive.directory(disDir, 'dist')
22
+ // 完成归档操作
23
+ archive.finalize()
24
+
25
+ archive.on('end', function () {
26
+ console.log(`[${mode}] 压缩完成`)
27
+ remoaveFiles()
28
+ fs.rmdirSync(disDir, { recursive: true })
29
+ })
30
+ }
31
+
32
+ function remoaveFiles () {
33
+ fs.rmdir(disDir, { recursive: true }, (err) => {
34
+ if (err) return console.error(err)
35
+ console.log('dist目录删除成功')
36
+ })
37
+ }
38
+
39
+ function addVersion () {
40
+ const data = {
41
+ version: new Date().getTime(),
42
+ build: mode
43
+ }
44
+ const json = JSON.stringify(data)
45
+ // 在这里更新版本号信息
46
+ fs.writeFile('./dist/ver.json', json, err => {
47
+ if (err) throw err
48
+ console.log(`版本号已更新为:${data.version}`)
49
+ console.log(`打包指令为${mode}`)
50
+ files()
51
+ })
52
+ }
53
+
54
+ const compressedFiles = (data: { mode: string } = { mode: 'default' }) => {
55
+ mode = data.mode || 'default' // 当前打包的模式
56
+ zipFilePath = `${pJson.name}-${mode}.zip` // 压缩文件保存路径
57
+ setTimeout(() => {
58
+ addVersion()
59
+ console.log('开始压缩', dayjs().unix())
60
+ }, 1000 * 5.5)
61
+ }
62
+
63
+ export default compressedFiles