@gct-paas/build 0.1.14 → 0.1.15

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/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.15] - 2026-05-13
11
+
12
+ ### Added
13
+
14
+ - 新增 vite 插件,底包编译时注入 banner 显示包名称和版本号
15
+
10
16
  ## [0.1.14] - 2026-05-13
11
17
 
12
18
  ### Added
@@ -69,9 +69,16 @@ Object.defineProperty(exports, "defineWebPluginViteConfig", {
69
69
  return _vitePluginConfig.defineWebPluginViteConfig;
70
70
  }
71
71
  });
72
+ Object.defineProperty(exports, "injectPkgBannerPlugin", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _injectPkgBannerPlugin.injectPkgBannerPlugin;
76
+ }
77
+ });
72
78
  var _viteBaseConfig = require("./vite-config/vite-base-config.cjs");
73
79
  var _viteConfig = require("./vite-config/vite-config.cjs");
74
80
  var _viteDevConfig = require("./vite-config/vite-dev-config.cjs");
75
81
  var _vitePkgDevConfig = require("./vite-config/vite-pkg-dev-config.cjs");
76
82
  var _vitePluginConfig = require("./vite-config/vite-plugin-config.cjs");
77
- var _viteProjectConfig = require("./vite-config/vite-project-config.cjs");
83
+ var _viteProjectConfig = require("./vite-config/vite-project-config.cjs");
84
+ var _injectPkgBannerPlugin = require("./vite-plugins/inject-pkg-banner-plugin.cjs");
@@ -4,3 +4,4 @@ export { defineDevViteConfig } from './vite-config/vite-dev-config';
4
4
  export { definePkgDevViteConfig } from './vite-config/vite-pkg-dev-config';
5
5
  export { definePluginViteConfig, defineDesignPluginViteConfig, defineMobilePluginViteConfig, definePadPluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
6
6
  export { defineProjectViteConfig } from './vite-config/vite-project-config';
7
+ export { injectPkgBannerPlugin } from './vite-plugins/inject-pkg-banner-plugin';
@@ -9,6 +9,7 @@ var _vite = require("vite");
9
9
  var _path = _interopRequireDefault(require("path"));
10
10
  var _vite2 = _interopRequireDefault(require("unocss/vite"));
11
11
  var _viteBaseConfig = require("./vite-base-config.cjs");
12
+ var _injectPkgBannerPlugin = require("../vite-plugins/inject-pkg-banner-plugin.cjs");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function defineViteConfig(opts = {}) {
14
15
  const cwd = process.cwd();
@@ -37,7 +38,7 @@ function defineViteConfig(opts = {}) {
37
38
  fileName: "[name].[format].min"
38
39
  }
39
40
  },
40
- plugins: [(0, _vite2.default)({
41
+ plugins: [(0, _injectPkgBannerPlugin.injectPkgBannerPlugin)(), (0, _vite2.default)({
41
42
  hmrTopLevelAwait: false
42
43
  })]
43
44
  })), opts);
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.injectPkgBannerPlugin = injectPkgBannerPlugin;
7
+ var _nodeFs = _interopRequireDefault(require("node:fs"));
8
+ var _nodePath = _interopRequireDefault(require("node:path"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function injectPkgBannerPlugin() {
11
+ let banner = "";
12
+ return {
13
+ name: "gct-vite-plugin:inject-pkg-banner",
14
+ apply: "build",
15
+ buildStart() {
16
+ const cwd = process.cwd();
17
+ const pkgPath = _nodePath.default.resolve(cwd, "package.json");
18
+ try {
19
+ const pkg = JSON.parse(_nodeFs.default.readFileSync(pkgPath, "utf-8"));
20
+ const name = pkg.name ?? "";
21
+ const version = pkg.version ?? "";
22
+ if (name || version) {
23
+ banner = `/*! ${name} v${version} */`;
24
+ }
25
+ } catch {
26
+ this.warn("injectPkgBannerPlugin: \u65E0\u6CD5\u8BFB\u53D6 package.json\uFF0C\u8DF3\u8FC7 banner \u6CE8\u5165");
27
+ }
28
+ },
29
+ renderChunk(code) {
30
+ if (!banner) return null;
31
+ return {
32
+ code: `${banner}
33
+ ${code}`,
34
+ map: null
35
+ };
36
+ }
37
+ };
38
+ }
@@ -0,0 +1,10 @@
1
+ import type { Plugin } from 'vite';
2
+ /**
3
+ * 在构建产物的每个 chunk 顶部注入当前包名称与版本信息注释的 Vite 插件
4
+ * 注入格式:/* {name} v{version} *\/
5
+ * 便于在浏览器 DevTools 中快速识别包版本
6
+ *
7
+ * @export
8
+ * @return {*} {Plugin}
9
+ */
10
+ export declare function injectPkgBannerPlugin(): Plugin;
@@ -4,3 +4,4 @@ export { defineDevViteConfig } from './vite-config/vite-dev-config';
4
4
  export { definePkgDevViteConfig } from './vite-config/vite-pkg-dev-config';
5
5
  export { definePluginViteConfig, defineDesignPluginViteConfig, defineMobilePluginViteConfig, definePadPluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
6
6
  export { defineProjectViteConfig } from './vite-config/vite-project-config';
7
+ export { injectPkgBannerPlugin } from './vite-plugins/inject-pkg-banner-plugin';
package/es/vite/index.mjs CHANGED
@@ -10,3 +10,4 @@ export {
10
10
  defineWebPluginViteConfig
11
11
  } from "./vite-config/vite-plugin-config.mjs";
12
12
  export { defineProjectViteConfig } from "./vite-config/vite-project-config.mjs";
13
+ export { injectPkgBannerPlugin } from "./vite-plugins/inject-pkg-banner-plugin.mjs";
@@ -2,6 +2,7 @@ import { defineConfig, mergeConfig } from "vite";
2
2
  import path from "path";
3
3
  import UnoCSS from "unocss/vite";
4
4
  import { defineViteBaseConfig } from "./vite-base-config.mjs";
5
+ import { injectPkgBannerPlugin } from "../vite-plugins/inject-pkg-banner-plugin.mjs";
5
6
  export function defineViteConfig(opts = {}) {
6
7
  const cwd = process.cwd();
7
8
  return mergeConfig(
@@ -32,6 +33,7 @@ export function defineViteConfig(opts = {}) {
32
33
  }
33
34
  },
34
35
  plugins: [
36
+ injectPkgBannerPlugin(),
35
37
  UnoCSS({ hmrTopLevelAwait: false })
36
38
  ]
37
39
  })
@@ -0,0 +1,10 @@
1
+ import type { Plugin } from 'vite';
2
+ /**
3
+ * 在构建产物的每个 chunk 顶部注入当前包名称与版本信息注释的 Vite 插件
4
+ * 注入格式:/* {name} v{version} *\/
5
+ * 便于在浏览器 DevTools 中快速识别包版本
6
+ *
7
+ * @export
8
+ * @return {*} {Plugin}
9
+ */
10
+ export declare function injectPkgBannerPlugin(): Plugin;
@@ -0,0 +1,28 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ export function injectPkgBannerPlugin() {
4
+ let banner = "";
5
+ return {
6
+ name: "gct-vite-plugin:inject-pkg-banner",
7
+ apply: "build",
8
+ buildStart() {
9
+ const cwd = process.cwd();
10
+ const pkgPath = path.resolve(cwd, "package.json");
11
+ try {
12
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
13
+ const name = pkg.name ?? "";
14
+ const version = pkg.version ?? "";
15
+ if (name || version) {
16
+ banner = `/*! ${name} v${version} */`;
17
+ }
18
+ } catch {
19
+ this.warn("injectPkgBannerPlugin: \u65E0\u6CD5\u8BFB\u53D6 package.json\uFF0C\u8DF3\u8FC7 banner \u6CE8\u5165");
20
+ }
21
+ },
22
+ renderChunk(code) {
23
+ if (!banner) return null;
24
+ return { code: `${banner}
25
+ ${code}`, map: null };
26
+ }
27
+ };
28
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/build",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "type": "module",
5
5
  "description": "paas 平台核心包",
6
6
  "main": "dist/index.cjs",