@lark-apaas/coding-preset-vite-react 1.0.13-alpha.13 → 1.0.13-alpha.3
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/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -6
- package/lib/index.js.map +1 -1
- package/lib/plugins/server-log.d.ts +17 -7
- package/lib/plugins/server-log.d.ts.map +1 -1
- package/lib/plugins/server-log.js +27 -7
- package/lib/plugins/server-log.js.map +1 -1
- package/lib/plugins/view-context.d.ts +0 -5
- package/lib/plugins/view-context.d.ts.map +1 -1
- package/lib/plugins/view-context.js +0 -3
- package/lib/plugins/view-context.js.map +1 -1
- package/lib/server-log/openapi/controller.d.ts +7 -0
- package/lib/server-log/openapi/controller.d.ts.map +1 -0
- package/lib/server-log/openapi/controller.js +60 -0
- package/lib/server-log/openapi/controller.js.map +1 -0
- package/lib/server-log/openapi/index.d.ts +10 -0
- package/lib/server-log/openapi/index.d.ts.map +1 -0
- package/lib/server-log/openapi/index.js +48 -0
- package/lib/server-log/openapi/index.js.map +1 -0
- package/lib/server-log/openapi/router.d.ts +20 -0
- package/lib/server-log/openapi/router.d.ts.map +1 -0
- package/lib/server-log/openapi/router.js +26 -0
- package/lib/server-log/openapi/router.js.map +1 -0
- package/lib/server-log/openapi/services.d.ts +15 -0
- package/lib/server-log/openapi/services.d.ts.map +1 -0
- package/lib/server-log/openapi/services.js +276 -0
- package/lib/server-log/openapi/services.js.map +1 -0
- package/lib/server-log/openapi/spec-controller.d.ts +4 -0
- package/lib/server-log/openapi/spec-controller.d.ts.map +1 -0
- package/lib/server-log/openapi/spec-controller.js +136 -0
- package/lib/server-log/openapi/spec-controller.js.map +1 -0
- package/lib/server-log/openapi/types.d.ts +56 -0
- package/lib/server-log/openapi/types.d.ts.map +1 -0
- package/lib/server-log/openapi/types.js +3 -0
- package/lib/server-log/openapi/types.js.map +1 -0
- package/lib/server-log/openapi/utils.d.ts +18 -0
- package/lib/server-log/openapi/utils.d.ts.map +1 -0
- package/lib/server-log/openapi/utils.js +128 -0
- package/lib/server-log/openapi/utils.js.map +1 -0
- package/package.json +1 -1
- package/lib/plugins/basename-injection.d.ts +0 -29
- package/lib/plugins/basename-injection.d.ts.map +0 -1
- package/lib/plugins/basename-injection.js +0 -114
- package/lib/plugins/basename-injection.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/server-log/openapi/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/coding-preset-vite-react",
|
|
3
|
-
"version": "1.0.13-alpha.
|
|
3
|
+
"version": "1.0.13-alpha.3",
|
|
4
4
|
"description": "Vite 8 preset for miaoda-coding vite-react (jsPage) templates — pure frontend, no fullstack baggage",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Basename Injection Plugin for Vite
|
|
3
|
-
*
|
|
4
|
-
* 仅对应用入口文件做字符串替换:
|
|
5
|
-
* process.env.CLIENT_BASE_PATH
|
|
6
|
-
* → ((typeof window !== "undefined" && window.__BASENAME__) || "<envBasePath>")
|
|
7
|
-
*
|
|
8
|
-
* 让 BrowserRouter basename 运行时从 server 注入的 window.__BASENAME__ 读取,
|
|
9
|
-
* 实现"同一份 bundle 跑在不同 basename 下"(默认域名 `/app/<appId>`、自定义域名 `/` 或 `/<alias>`)。
|
|
10
|
-
*
|
|
11
|
-
* 入口文件识别(AST 预扫描法):
|
|
12
|
-
* configResolved 阶段从 vite 解析好的 rollupOptions.input 拿到 HTML 入口,
|
|
13
|
-
* 读取 HTML 内容提取所有 <script type="module" src="..."> 的 src 属性,
|
|
14
|
-
* resolve 为绝对路径存入入口白名单。transform 阶段直接用 id 匹配白名单,
|
|
15
|
-
* 不依赖 moduleGraph / getModuleInfo(enforce:'pre' 阶段不可靠)。
|
|
16
|
-
*
|
|
17
|
-
* 关键约束:
|
|
18
|
-
* - 只匹配入口文件,不影响 SDK 内部代码(如 client-toolkit-lite 内部读 process.env.CLIENT_BASE_PATH 的逻辑保持编译期常量)
|
|
19
|
-
* - enforce: 'pre' 确保在 vite 内置 define 替换之前执行
|
|
20
|
-
* - 兜底常量来自构建时 process.env.CLIENT_BASE_PATH,保证 SSR 渲染失败 / 静态导出场景下仍可降级运行
|
|
21
|
-
*/
|
|
22
|
-
import type { Plugin } from 'vite';
|
|
23
|
-
export interface BasenameInjectionPluginOptions {
|
|
24
|
-
/** 编译时兜底 basename,通常等于 process.env.CLIENT_BASE_PATH */
|
|
25
|
-
envBasePath?: string;
|
|
26
|
-
}
|
|
27
|
-
export declare function basenameInjectionPlugin(options?: BasenameInjectionPluginOptions): Plugin;
|
|
28
|
-
export default basenameInjectionPlugin;
|
|
29
|
-
//# sourceMappingURL=basename-injection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basename-injection.d.ts","sourceRoot":"","sources":["../../src/plugins/basename-injection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAC;AAMnD,MAAM,WAAW,8BAA8B;IAC7C,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsCD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,MAAM,CAgDR;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Basename Injection Plugin for Vite
|
|
4
|
-
*
|
|
5
|
-
* 仅对应用入口文件做字符串替换:
|
|
6
|
-
* process.env.CLIENT_BASE_PATH
|
|
7
|
-
* → ((typeof window !== "undefined" && window.__BASENAME__) || "<envBasePath>")
|
|
8
|
-
*
|
|
9
|
-
* 让 BrowserRouter basename 运行时从 server 注入的 window.__BASENAME__ 读取,
|
|
10
|
-
* 实现"同一份 bundle 跑在不同 basename 下"(默认域名 `/app/<appId>`、自定义域名 `/` 或 `/<alias>`)。
|
|
11
|
-
*
|
|
12
|
-
* 入口文件识别(AST 预扫描法):
|
|
13
|
-
* configResolved 阶段从 vite 解析好的 rollupOptions.input 拿到 HTML 入口,
|
|
14
|
-
* 读取 HTML 内容提取所有 <script type="module" src="..."> 的 src 属性,
|
|
15
|
-
* resolve 为绝对路径存入入口白名单。transform 阶段直接用 id 匹配白名单,
|
|
16
|
-
* 不依赖 moduleGraph / getModuleInfo(enforce:'pre' 阶段不可靠)。
|
|
17
|
-
*
|
|
18
|
-
* 关键约束:
|
|
19
|
-
* - 只匹配入口文件,不影响 SDK 内部代码(如 client-toolkit-lite 内部读 process.env.CLIENT_BASE_PATH 的逻辑保持编译期常量)
|
|
20
|
-
* - enforce: 'pre' 确保在 vite 内置 define 替换之前执行
|
|
21
|
-
* - 兜底常量来自构建时 process.env.CLIENT_BASE_PATH,保证 SSR 渲染失败 / 静态导出场景下仍可降级运行
|
|
22
|
-
*/
|
|
23
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.basenameInjectionPlugin = basenameInjectionPlugin;
|
|
28
|
-
const fs_1 = __importDefault(require("fs"));
|
|
29
|
-
const path_1 = __importDefault(require("path"));
|
|
30
|
-
const TARGET_PATTERN = /\bprocess\.env\.CLIENT_BASE_PATH\b/g;
|
|
31
|
-
// 兜底正则:HTML 解析失败时使用(匹配 index 和 app,用户模板可能把 BrowserRouter 写在 app.tsx)
|
|
32
|
-
const FALLBACK_ENTRY_REGEX = /[/\\](client[/\\])?src[/\\](index|app)\.(tsx?|jsx?)$/;
|
|
33
|
-
/**
|
|
34
|
-
* 从 HTML 文件中提取所有 <script type="module" src="..."> 的 src,
|
|
35
|
-
* 相对于 vite root 解析为绝对路径返回。
|
|
36
|
-
*
|
|
37
|
-
* 注意 src 的两种写法:
|
|
38
|
-
* - "/client/src/index.tsx" → vite root-relative(以 / 开头,相对于 vite root)
|
|
39
|
-
* - "./src/index.tsx" → 相对于 HTML 文件所在目录
|
|
40
|
-
*/
|
|
41
|
-
function extractEntryScripts(htmlPath, viteRoot) {
|
|
42
|
-
const entries = new Set();
|
|
43
|
-
try {
|
|
44
|
-
const html = fs_1.default.readFileSync(htmlPath, 'utf-8');
|
|
45
|
-
const htmlDir = path_1.default.dirname(htmlPath);
|
|
46
|
-
// 每次调用都新建 regex,避免 g flag 的 lastIndex 状态残留
|
|
47
|
-
const regex = /<script\b[^>]*type=["']module["'][^>]*src=["']([^"']+)["']|<script\b[^>]*src=["']([^"']+)["'][^>]*type=["']module["']/g;
|
|
48
|
-
let match;
|
|
49
|
-
while ((match = regex.exec(html)) !== null) {
|
|
50
|
-
const src = match[1] || match[2];
|
|
51
|
-
if (!src)
|
|
52
|
-
continue;
|
|
53
|
-
// vite root-relative 路径(如 /client/src/index.tsx)需要相对于 vite root 解析
|
|
54
|
-
// 相对路径(如 ./src/index.tsx)则相对于 HTML 文件目录解析
|
|
55
|
-
const resolved = src.startsWith('/')
|
|
56
|
-
? path_1.default.resolve(viteRoot, src.slice(1))
|
|
57
|
-
: path_1.default.resolve(htmlDir, src);
|
|
58
|
-
entries.add(path_1.default.normalize(resolved));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// HTML 读取失败,fallback 到默认正则
|
|
63
|
-
}
|
|
64
|
-
return entries;
|
|
65
|
-
}
|
|
66
|
-
function basenameInjectionPlugin(options = {}) {
|
|
67
|
-
const envBasePath = options.envBasePath ?? process.env.CLIENT_BASE_PATH ?? '';
|
|
68
|
-
const fallback = JSON.stringify(envBasePath);
|
|
69
|
-
const runtimeExpr = `((typeof window !== "undefined" && window.__BASENAME__) || ${fallback})`;
|
|
70
|
-
// 入口文件白名单(绝对路径),configResolved 阶段填充
|
|
71
|
-
let entryFiles;
|
|
72
|
-
return {
|
|
73
|
-
name: 'fullstack-basename-injection',
|
|
74
|
-
enforce: 'pre',
|
|
75
|
-
configResolved(config) {
|
|
76
|
-
const input = config.build?.rollupOptions?.input;
|
|
77
|
-
if (typeof input === 'string' && input.endsWith('.html')) {
|
|
78
|
-
entryFiles = extractEntryScripts(input, config.root);
|
|
79
|
-
// 用户模板可能把 BrowserRouter 写在 app.tsx 而非 index.tsx,
|
|
80
|
-
// 把入口文件同目录的 app.{tsx,ts,jsx,js} 也加入白名单
|
|
81
|
-
for (const entry of [...entryFiles]) {
|
|
82
|
-
const dir = path_1.default.dirname(entry);
|
|
83
|
-
for (const name of ['app.tsx', 'app.ts', 'app.jsx', 'app.js']) {
|
|
84
|
-
entryFiles.add(path_1.default.join(dir, name));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
transform(code, id) {
|
|
90
|
-
// 1. 排除虚拟模块和 node_modules
|
|
91
|
-
if (id.startsWith('\0') || id.includes('node_modules'))
|
|
92
|
-
return null;
|
|
93
|
-
// 2. 内容快速过滤
|
|
94
|
-
if (!code.includes('process.env.CLIENT_BASE_PATH'))
|
|
95
|
-
return null;
|
|
96
|
-
// 3. 入口文件匹配
|
|
97
|
-
const cleanId = path_1.default.normalize(id.split('?')[0].split('#')[0]);
|
|
98
|
-
if (entryFiles && entryFiles.size > 0) {
|
|
99
|
-
if (!entryFiles.has(cleanId))
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
if (!FALLBACK_ENTRY_REGEX.test(cleanId))
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
return {
|
|
107
|
-
code: code.replace(TARGET_PATTERN, runtimeExpr),
|
|
108
|
-
map: null,
|
|
109
|
-
};
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
exports.default = basenameInjectionPlugin;
|
|
114
|
-
//# sourceMappingURL=basename-injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"basename-injection.js","sourceRoot":"","sources":["../../src/plugins/basename-injection.ts"],"names":[],"mappings":"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"}
|