@gct-paas/build 0.1.14 → 0.1.16
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 +12 -0
- package/dist/vite/index.cjs +8 -1
- package/dist/vite/index.d.ts +1 -0
- package/dist/vite/vite-config/vite-config.cjs +2 -1
- package/dist/vite/vite-plugins/inject-importmap-plugin.cjs +3 -0
- package/dist/vite/vite-plugins/inject-importmap-plugin.d.ts +10 -4
- package/dist/vite/vite-plugins/inject-pkg-banner-plugin.cjs +38 -0
- package/dist/vite/vite-plugins/inject-pkg-banner-plugin.d.ts +10 -0
- package/es/vite/index.d.ts +1 -0
- package/es/vite/index.mjs +1 -0
- package/es/vite/vite-config/vite-config.mjs +2 -0
- package/es/vite/vite-plugins/inject-importmap-plugin.d.ts +10 -4
- package/es/vite/vite-plugins/inject-importmap-plugin.mjs +3 -0
- package/es/vite/vite-plugins/inject-pkg-banner-plugin.d.ts +10 -0
- package/es/vite/vite-plugins/inject-pkg-banner-plugin.mjs +28 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.16] - 2026-05-28
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- vite 编译 injectImportMapPlugin 插件支持禁用配置
|
|
15
|
+
|
|
16
|
+
## [0.1.15] - 2026-05-13
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- 新增 vite 插件,底包编译时注入 banner 显示包名称和版本号
|
|
21
|
+
|
|
10
22
|
## [0.1.14] - 2026-05-13
|
|
11
23
|
|
|
12
24
|
### Added
|
package/dist/vite/index.cjs
CHANGED
|
@@ -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");
|
package/dist/vite/index.d.ts
CHANGED
|
@@ -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);
|
|
@@ -11,6 +11,9 @@ var _util = require("../../util/index.cjs");
|
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
const DEV_IMPORT_MAP_PREFIX = ["/plugin-design/@id/", "/plugin-render-mobile/@id/", "/plugin-render-pad/@id/", "/plugin-render-web/@id/"];
|
|
13
13
|
function injectImportMapPlugin(options = {}) {
|
|
14
|
+
if (options.disabled === true) {
|
|
15
|
+
return void 0;
|
|
16
|
+
}
|
|
14
17
|
const {
|
|
15
18
|
repoUrl = "https://git.gct-china.com/paas/frontend/gct-paas-cdn.git",
|
|
16
19
|
filePath = "extras/import-map.json",
|
|
@@ -7,21 +7,27 @@ import type { Plugin } from 'vite';
|
|
|
7
7
|
*/
|
|
8
8
|
export interface InjectImportMapPluginOptions {
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 是否禁用注入 import-map 配置的插件,默认为 false,即启用注入 import-map 配置的插件,设置为 true 则禁用注入 import-map 配置的插件
|
|
11
11
|
*
|
|
12
12
|
* @type {boolean}
|
|
13
13
|
*/
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* 仓库地址,默认为 https://git.gct-china.com/paas/frontend/gct-paas-cdn.git
|
|
17
|
+
*
|
|
18
|
+
* @type {string}
|
|
19
|
+
*/
|
|
14
20
|
repoUrl?: string;
|
|
15
21
|
/**
|
|
16
22
|
* 需要读取的文件路径,默认为 extras/import-map.json
|
|
17
23
|
*
|
|
18
|
-
* @type {
|
|
24
|
+
* @type {string}
|
|
19
25
|
*/
|
|
20
26
|
filePath?: string;
|
|
21
27
|
/**
|
|
22
28
|
* 指定分支,若未指定则自动获取当前主工程对应的分支
|
|
23
29
|
*
|
|
24
|
-
* @type {
|
|
30
|
+
* @type {string}
|
|
25
31
|
*/
|
|
26
32
|
branch?: string;
|
|
27
33
|
/**
|
|
@@ -34,4 +40,4 @@ export interface InjectImportMapPluginOptions {
|
|
|
34
40
|
/**
|
|
35
41
|
* 编译时读取并注入 import-map 配置的插件
|
|
36
42
|
*/
|
|
37
|
-
export declare function injectImportMapPlugin(options?: InjectImportMapPluginOptions): Plugin;
|
|
43
|
+
export declare function injectImportMapPlugin(options?: InjectImportMapPluginOptions): Plugin | undefined;
|
|
@@ -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
|
+
}
|
package/es/vite/index.d.ts
CHANGED
|
@@ -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
|
@@ -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
|
})
|
|
@@ -7,21 +7,27 @@ import type { Plugin } from 'vite';
|
|
|
7
7
|
*/
|
|
8
8
|
export interface InjectImportMapPluginOptions {
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 是否禁用注入 import-map 配置的插件,默认为 false,即启用注入 import-map 配置的插件,设置为 true 则禁用注入 import-map 配置的插件
|
|
11
11
|
*
|
|
12
12
|
* @type {boolean}
|
|
13
13
|
*/
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* 仓库地址,默认为 https://git.gct-china.com/paas/frontend/gct-paas-cdn.git
|
|
17
|
+
*
|
|
18
|
+
* @type {string}
|
|
19
|
+
*/
|
|
14
20
|
repoUrl?: string;
|
|
15
21
|
/**
|
|
16
22
|
* 需要读取的文件路径,默认为 extras/import-map.json
|
|
17
23
|
*
|
|
18
|
-
* @type {
|
|
24
|
+
* @type {string}
|
|
19
25
|
*/
|
|
20
26
|
filePath?: string;
|
|
21
27
|
/**
|
|
22
28
|
* 指定分支,若未指定则自动获取当前主工程对应的分支
|
|
23
29
|
*
|
|
24
|
-
* @type {
|
|
30
|
+
* @type {string}
|
|
25
31
|
*/
|
|
26
32
|
branch?: string;
|
|
27
33
|
/**
|
|
@@ -34,4 +40,4 @@ export interface InjectImportMapPluginOptions {
|
|
|
34
40
|
/**
|
|
35
41
|
* 编译时读取并注入 import-map 配置的插件
|
|
36
42
|
*/
|
|
37
|
-
export declare function injectImportMapPlugin(options?: InjectImportMapPluginOptions): Plugin;
|
|
43
|
+
export declare function injectImportMapPlugin(options?: InjectImportMapPluginOptions): Plugin | undefined;
|
|
@@ -4,6 +4,9 @@ import { simpleGit } from "simple-git";
|
|
|
4
4
|
import { isBuildPluginEnv } from "../../util/index.mjs";
|
|
5
5
|
const DEV_IMPORT_MAP_PREFIX = ["/plugin-design/@id/", "/plugin-render-mobile/@id/", "/plugin-render-pad/@id/", "/plugin-render-web/@id/"];
|
|
6
6
|
export function injectImportMapPlugin(options = {}) {
|
|
7
|
+
if (options.disabled === true) {
|
|
8
|
+
return void 0;
|
|
9
|
+
}
|
|
7
10
|
const {
|
|
8
11
|
repoUrl = "https://git.gct-china.com/paas/frontend/gct-paas-cdn.git",
|
|
9
12
|
filePath = "extras/import-map.json",
|
|
@@ -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
|
+
}
|