xzh-vite-plugin-version 1.0.2 → 1.0.4
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.
- package/README.md +6 -6
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -8
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# xzh-vite-plugin-version
|
|
2
2
|
|
|
3
3
|
> 一个 Vite 插件,用于在构建时生成包含版本信息的 version.json 文件
|
|
4
4
|
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
## 安装
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install
|
|
16
|
+
npm install xzh-vite-plugin-version -D
|
|
17
17
|
# 或
|
|
18
|
-
pnpm add
|
|
18
|
+
pnpm add xzh-vite-plugin-version -D
|
|
19
19
|
# 或
|
|
20
|
-
yarn add
|
|
20
|
+
yarn add xzh-vite-plugin-version -D
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## 使用方法
|
|
@@ -27,7 +27,7 @@ yarn add @xzh/vite-plugin-version -D
|
|
|
27
27
|
```ts
|
|
28
28
|
// vite.config.ts
|
|
29
29
|
import { defineConfig } from "vite";
|
|
30
|
-
import versionPlugin from "
|
|
30
|
+
import versionPlugin from "xzh-vite-plugin-version";
|
|
31
31
|
|
|
32
32
|
export default defineConfig({
|
|
33
33
|
plugins: [versionPlugin()],
|
|
@@ -49,7 +49,7 @@ export default defineConfig({
|
|
|
49
49
|
|
|
50
50
|
```ts
|
|
51
51
|
import { defineConfig } from "vite";
|
|
52
|
-
import versionPlugin from "
|
|
52
|
+
import versionPlugin from "xzh-vite-plugin-version";
|
|
53
53
|
|
|
54
54
|
export default defineConfig({
|
|
55
55
|
plugins: [
|
package/dist/index.js
CHANGED
|
@@ -36,10 +36,12 @@ function versionPlugin(options = {}) {
|
|
|
36
36
|
commitHash = "unknown";
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
+
const date = /* @__PURE__ */ new Date();
|
|
40
|
+
const buildTime = `${date.getFullYear()}\u5E74${String(date.getMonth() + 1).padStart(2, "0")}\u6708${String(date.getDate()).padStart(2, "0")}\u65E5 ${String(date.getHours()).padStart(2, "0")}:${String(date.getMinutes()).padStart(2, "0")}:${String(date.getSeconds()).padStart(2, "0")}`;
|
|
39
41
|
const versionInfo = {
|
|
40
42
|
name: name || "unknown",
|
|
41
43
|
version: version || "0.0.0",
|
|
42
|
-
buildTime
|
|
44
|
+
buildTime,
|
|
43
45
|
gitCommit: commitHash
|
|
44
46
|
};
|
|
45
47
|
const finalInfo = transform ? transform(versionInfo) : versionInfo;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAkDO,SAAS,aAAA,CAAc,OAAA,GAAgC,EAAC,EAAW;AACxE,EAAA,MAAM;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,GAAS,EAAA;AAAA,IACT,QAAA,GAAW,cAAA;AAAA,IACX,SAAA,GAAY,IAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA,GAAU;AAAA,GACZ,GAAI,OAAA;AAEJ,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qBAAA;AAAA,IACN,KAAA,EAAO,OAAA;AAAA,IACP,WAAA,CAAY,EAAE,GAAA,EAAI,EAAG;AACnB,MAAA,IAAI;AAEF,QAAA,IAAI,IAAA,GAAO,OAAA;AACX,QAAA,IAAI,OAAA,GAAU,UAAA;AAEd,QAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,OAAA,EAAS;AACrB,UAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,cAAc,CAAA;AACrD,UAAA,IAAI,EAAA,CAAG,UAAA,CAAW,OAAO,CAAA,EAAG;AAC1B,YAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,GAAG,YAAA,CAAa,OAAA,EAAS,OAAO,CAAC,CAAA;AACxD,YAAA,IAAA,GAAO,QAAQ,GAAA,CAAI,IAAA;AACnB,YAAA,OAAA,GAAU,WAAW,GAAA,CAAI,OAAA;AAAA,UAC3B;AAAA,QACF;AAGA,QAAA,IAAI,UAAA,GAAa,SAAA;AACjB,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,IAAI;AACF,YAAA,UAAA,GAAa,QAAA,CAAS,4BAA4B,CAAA,CAAE,QAAA,GAAW,IAAA,EAAK;AAAA,UACtE,CAAA,CAAA,MAAQ;AACN,YAAA,UAAA,GAAa,SAAA;AAAA,UACf;AAAA,QACF;AAGA,QAAA,MAAM,WAAA,GAA2B;AAAA,UAC/B,MAAM,IAAA,IAAQ,SAAA;AAAA,UACd,SAAS,OAAA,IAAW,OAAA;AAAA,UACpB,SAAA
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { Plugin } from \"vite\";\nimport { resolve } from \"path\";\nimport fs from \"fs\";\nimport { execSync } from \"child_process\";\n\nexport interface VersionInfo {\n name: string;\n version: string;\n buildTime: string;\n gitCommit: string;\n}\n\nexport interface VersionPluginOptions {\n /**\n * 包名(默认从 process.cwd() 的 package.json 读取)\n */\n name?: string;\n /**\n * 版本号(默认从 process.cwd() 的 package.json 读取)\n */\n version?: string;\n /**\n * 输出目录(相对于 build.outDir 或 process.cwd())\n * @default '' (输出到构建根目录)\n */\n outDir?: string;\n /**\n * 输出文件名\n * @default 'version.json'\n */\n filename?: string;\n /**\n * 是否获取 git 提交哈希\n * @default true\n */\n gitCommit?: boolean;\n /**\n * 自定义版本信息转换器\n */\n transform?: (info: VersionInfo) => Record<string, any>;\n /**\n * 是否显示控制台输出\n * @default true\n */\n verbose?: boolean;\n}\n\n/**\n * Vite 插件:生成包含构建信息的 version.json 文件\n */\nexport function versionPlugin(options: VersionPluginOptions = {}): Plugin {\n const {\n name: pkgName,\n version: pkgVersion,\n outDir = \"\",\n filename = \"version.json\",\n gitCommit = true,\n transform,\n verbose = true\n } = options;\n\n return {\n name: \"vite-plugin-version\",\n apply: \"build\",\n writeBundle({ dir }) {\n try {\n // 如果未提供,从 package.json 获取包信息\n let name = pkgName;\n let version = pkgVersion;\n\n if (!name || !version) {\n const pkgPath = resolve(process.cwd(), \"package.json\");\n if (fs.existsSync(pkgPath)) {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, \"utf-8\"));\n name = name || pkg.name;\n version = version || pkg.version;\n }\n }\n\n // 获取 git 提交哈希\n let commitHash = \"unknown\";\n if (gitCommit) {\n try {\n commitHash = execSync(\"git rev-parse --short HEAD\").toString().trim();\n } catch {\n commitHash = \"unknown\";\n }\n }\n\n // 构建版本信息\n const date = new Date();\n const buildTime = `${date.getFullYear()}年${String(date.getMonth() + 1).padStart(2, '0')}月${String(date.getDate()).padStart(2, '0')}日 ${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`;\n\n const versionInfo: VersionInfo = {\n name: name || \"unknown\",\n version: version || \"0.0.0\",\n buildTime,\n gitCommit: commitHash\n };\n\n // 应用自定义转换器\n const finalInfo = transform ? transform(versionInfo) : versionInfo;\n\n // 确定输出路径\n const buildDir = dir || resolve(process.cwd(), \"dist\");\n const outputPath = resolve(buildDir, outDir, filename);\n\n // 确保输出目录存在\n const outputDir = resolve(buildDir, outDir);\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n // 写入版本文件\n fs.writeFileSync(outputPath, JSON.stringify(finalInfo, null, 2), \"utf-8\");\n\n if (verbose) {\n console.log(\"\\n✅ 版本信息文件已生成:\");\n console.log(` 路径: ${outputPath}`);\n console.log(` 版本: ${versionInfo.version}`);\n if (gitCommit) {\n console.log(` Git 提交: ${versionInfo.gitCommit}`);\n }\n console.log(` 构建时间: ${versionInfo.buildTime}\\n`);\n }\n } catch (error) {\n console.error(\"❌ 生成版本信息文件失败:\", error);\n throw error;\n }\n }\n };\n}\n\nexport default versionPlugin;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xzh-vite-plugin-version",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "A Vite plugin that generates version.json file with build info",
|
|
5
5
|
"author": "SwordGate",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,11 +23,6 @@
|
|
|
23
23
|
"version",
|
|
24
24
|
"build-info"
|
|
25
25
|
],
|
|
26
|
-
"scripts": {
|
|
27
|
-
"build": "tsup",
|
|
28
|
-
"dev": "tsup --watch",
|
|
29
|
-
"prepublishOnly": "pnpm run build"
|
|
30
|
-
},
|
|
31
26
|
"peerDependencies": {
|
|
32
27
|
"vite": ">=4.0.0"
|
|
33
28
|
},
|
|
@@ -47,5 +42,9 @@
|
|
|
47
42
|
"bugs": {
|
|
48
43
|
"url": "https://github.com/xzhdev/vite-plugin-version/issues"
|
|
49
44
|
},
|
|
50
|
-
"homepage": "https://github.com/xzhdev/vite-plugin-version#readme"
|
|
51
|
-
|
|
45
|
+
"homepage": "https://github.com/xzhdev/vite-plugin-version#readme",
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsup",
|
|
48
|
+
"dev": "tsup --watch"
|
|
49
|
+
}
|
|
50
|
+
}
|