zhangxiao
2024-08-26 57b66478e7e335379435b31c20da4619bd1411f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// versionUpdatePlugin.js
import fs from "fs";
import path from "path";
import { Plugin } from "vite";
 
const writeVersion = (versionFile: string, content: string) => {
    // 写入文件
    fs.writeFile(versionFile, content, (err) => {
        if (err) throw err;
    });
};
 
export default (options: { version: string }): Plugin => {
    let config: any;
 
    return {
        name: "version-update",
 
        configResolved(resolvedConfig) {
            // 存储最终解析的配置
            config = resolvedConfig;
        },
 
        buildStart() {
            // 生成版本信息文件路径
            const file = config.publicDir + path.sep + "version.json"; // 这里使用编译时间作为版本信息
            const content = JSON.stringify({ version: options.version });
 
            if (fs.existsSync(config.publicDir)) {
                writeVersion(file, content);
            } else {
                fs.mkdir(config.publicDir, (err) => {
                    if (err) throw err;
                    writeVersion(file, content);
                });
            }
        }
    };
};