@lark-apaas/fullstack-vite-preset 1.0.9-alpha.4 → 1.0.9-alpha.41
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/preset.d.ts.map +1 -1
- package/lib/preset.js +60 -5
- package/lib/preset.js.map +1 -1
- package/lib/vite-plugins/route-parser-plugin.d.ts +1 -0
- package/lib/vite-plugins/route-parser-plugin.d.ts.map +1 -1
- package/lib/vite-plugins/route-parser-plugin.js +12 -218
- package/lib/vite-plugins/route-parser-plugin.js.map +1 -1
- package/lib/vite-plugins/slardar-plugin.d.ts.map +1 -1
- package/lib/vite-plugins/slardar-plugin.js +6 -2
- package/lib/vite-plugins/slardar-plugin.js.map +1 -1
- package/package.json +4 -4
- package/src/overlay/index.js +19 -1
- package/src/overlay/vite-client.js +37 -2
package/lib/preset.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AA+C9D,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,UAAU,
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,MAAM,MAAM,CAAC;AA+C9D,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mCAAmC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAaD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,UAAU,CAsbZ"}
|
package/lib/preset.js
CHANGED
|
@@ -57,6 +57,31 @@ function createRecommendViteConfig(options) {
|
|
|
57
57
|
const appFlags = readAppFlags(rootDir);
|
|
58
58
|
// 优先从环境变量获取 RELEASE_ID,否则使用时间戳作为兜底
|
|
59
59
|
const releaseId = process.env.RELEASE_ID || new Date().toISOString();
|
|
60
|
+
// 从 clientBasePath(如 /app/app123)中提取 appId,用于构造旧路径代理规则
|
|
61
|
+
// 仅在新路径格式(/app/:appId)下启用旧路径兼容
|
|
62
|
+
const isNewPathFormat = /^\/app\/[^/]/.test(clientBasePath);
|
|
63
|
+
const appId = isNewPathFormat
|
|
64
|
+
? clientBasePath.replace(/\/+$/, '').split('/').pop()
|
|
65
|
+
: '';
|
|
66
|
+
// 读取构建前生成的路由定义 JSON,供 define 注入到 bundle
|
|
67
|
+
// build.sh 在 client 构建之前已将 page-routes.json / api-routes.json 写入 dist/
|
|
68
|
+
// 独立于 needRoutes(needRoutes 仅控制 RouteParserPlugin),只要文件存在就注入
|
|
69
|
+
let pageRouteDefinitions = [];
|
|
70
|
+
let apiRouteDefinitions = [];
|
|
71
|
+
try {
|
|
72
|
+
const pageRoutesPath = path_1.default.resolve(rootDir, 'dist/page-routes.json');
|
|
73
|
+
if (fs_1.default.existsSync(pageRoutesPath)) {
|
|
74
|
+
pageRouteDefinitions = JSON.parse(fs_1.default.readFileSync(pageRoutesPath, 'utf-8'));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch { /* ignore */ }
|
|
78
|
+
try {
|
|
79
|
+
const apiRoutesPath = path_1.default.resolve(rootDir, 'dist/api-routes.json');
|
|
80
|
+
if (fs_1.default.existsSync(apiRoutesPath)) {
|
|
81
|
+
apiRouteDefinitions = JSON.parse(fs_1.default.readFileSync(apiRoutesPath, 'utf-8'));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch { /* ignore */ }
|
|
60
85
|
// Build the plugins array
|
|
61
86
|
const plugins = [
|
|
62
87
|
// Cloud env patch: suppress auto page-reload on HMR WebSocket reconnect (dev only)
|
|
@@ -78,6 +103,12 @@ function createRecommendViteConfig(options) {
|
|
|
78
103
|
// Runtime injection plugin - injects @lark-apaas/client-toolkit/runtime
|
|
79
104
|
// Must be early to ensure runtime is loaded before app code
|
|
80
105
|
(0, runtime_injection_plugin_1.runtimeInjectionPlugin)({ clientBasePath }),
|
|
106
|
+
// Inspector plugin for dev mode (injects data attributes for debugging)
|
|
107
|
+
// Only enabled in development when DISABLE_INSPECTOR is not set
|
|
108
|
+
// Must be BEFORE react() — both use enforce:'pre' and Vite runs them in array order.
|
|
109
|
+
// If react() runs first, its Babel transform converts JSX to _jsxDEV() calls,
|
|
110
|
+
// leaving no JSX elements for the inspector to annotate.
|
|
111
|
+
enableInspector && (0, vite_inspector_plugin_1.inspectorPlugin)(),
|
|
81
112
|
// React plugin with Babel for styled-jsx support
|
|
82
113
|
// 宽松模式下使用 @lark-apaas/styled-jsx/babel(对齐 rspack-preset),否则使用社区版
|
|
83
114
|
(0, plugin_react_1.default)({
|
|
@@ -88,9 +119,6 @@ function createRecommendViteConfig(options) {
|
|
|
88
119
|
// Only enable fast refresh in dev mode
|
|
89
120
|
...(enableReactRefresh ? {} : { fastRefresh: false }),
|
|
90
121
|
}),
|
|
91
|
-
// Inspector plugin for dev mode (injects data attributes for debugging)
|
|
92
|
-
// Only enabled in development when DISABLE_INSPECTOR is not set
|
|
93
|
-
enableInspector && (0, vite_inspector_plugin_1.inspectorPlugin)(),
|
|
94
122
|
// Module alias plugin for clsx and echarts
|
|
95
123
|
(0, module_alias_plugin_1.moduleAliasPlugin)(),
|
|
96
124
|
// Route parser plugin (when needRoutes is true)
|
|
@@ -103,10 +131,10 @@ function createRecommendViteConfig(options) {
|
|
|
103
131
|
serveBasePath: clientBasePath,
|
|
104
132
|
...(isDev ? { basePath: '' } : {}),
|
|
105
133
|
}),
|
|
134
|
+
// View context injection plugin (must be before slardar so it appears first in HTML)
|
|
135
|
+
(0, view_context_plugin_1.viewContextPlugin)(),
|
|
106
136
|
// Performance monitoring plugin (Slardar + Tea)
|
|
107
137
|
(0, slardar_plugin_1.slardarPlugin)({ bid: 'apaas_miaoda' }),
|
|
108
|
-
// View context injection plugin
|
|
109
|
-
(0, view_context_plugin_1.viewContextPlugin)(),
|
|
110
138
|
// OG Meta tags injection plugin
|
|
111
139
|
(0, og_meta_plugin_1.ogMetaPlugin)(),
|
|
112
140
|
// 生产环境:生成 legacy CSS 并注入检测脚本(对齐 rspack-preset)
|
|
@@ -171,6 +199,9 @@ function createRecommendViteConfig(options) {
|
|
|
171
199
|
'process.env.BUILD_TOOL': JSON.stringify('vite'),
|
|
172
200
|
// 模板 flags 配置
|
|
173
201
|
'process.env.APP_FLAGS': JSON.stringify(appFlags),
|
|
202
|
+
// 路由定义,供客户端匹配 referer_path 和 api
|
|
203
|
+
'process.env.__PAGE_ROUTE_DEFINITIONS__': JSON.stringify(JSON.stringify(pageRouteDefinitions)),
|
|
204
|
+
'process.env.__API_ROUTE_DEFINITIONS__': JSON.stringify(JSON.stringify(apiRouteDefinitions)),
|
|
174
205
|
},
|
|
175
206
|
server: {
|
|
176
207
|
port: Number(process.env.CLIENT_DEV_PORT) || 8080,
|
|
@@ -226,6 +257,29 @@ function createRecommendViteConfig(options) {
|
|
|
226
257
|
});
|
|
227
258
|
},
|
|
228
259
|
},
|
|
260
|
+
// 旧路径(/af/p/:appId)兼容代理,转发到 Node Server 由 legacy-path-redirect 中间件处理
|
|
261
|
+
...(appId
|
|
262
|
+
? {
|
|
263
|
+
[`/af/p/${appId}/api`]: {
|
|
264
|
+
target: `http://localhost:${serverPort}`,
|
|
265
|
+
changeOrigin: true,
|
|
266
|
+
configure: (proxy) => {
|
|
267
|
+
proxy.on('error', (err, req, res) => {
|
|
268
|
+
sendBackendUnavailable502(err, req, res);
|
|
269
|
+
});
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
[`/af/p/${appId}/__innerapi__`]: {
|
|
273
|
+
target: `http://localhost:${serverPort}`,
|
|
274
|
+
changeOrigin: true,
|
|
275
|
+
configure: (proxy) => {
|
|
276
|
+
proxy.on('error', (err, req, res) => {
|
|
277
|
+
sendBackendUnavailable502(err, req, res);
|
|
278
|
+
});
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
}
|
|
282
|
+
: {}),
|
|
229
283
|
},
|
|
230
284
|
},
|
|
231
285
|
build: {
|
|
@@ -329,6 +383,7 @@ function createRecommendViteConfig(options) {
|
|
|
329
383
|
const isStaticAsset = /\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$/i.test(pathname);
|
|
330
384
|
if (isHtmlRequest && !isDevServerPath && !isStaticAsset) {
|
|
331
385
|
// Forward to backend server
|
|
386
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
332
387
|
const http = require('http');
|
|
333
388
|
const proxyReq = http.request({
|
|
334
389
|
hostname: 'localhost',
|
package/lib/preset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-parser-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/route-parser-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"route-parser-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/route-parser-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAWlD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEjG,UAAU,wBAAwB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yHAAyH;IACzH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sHAAsH;IACtH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAsCD,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,wBAA6B,GACrC,MAAM,CA8DR;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -32,261 +32,57 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.parseRoutes = exports.normalizeBasePath = void 0;
|
|
39
37
|
exports.routeParserPlugin = routeParserPlugin;
|
|
40
38
|
const fs = __importStar(require("fs"));
|
|
41
39
|
const path = __importStar(require("path"));
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
* Normalize basePath: ensure it starts with '/' and does not end with '/'
|
|
48
|
-
* (Align with rspack behavior)
|
|
49
|
-
*/
|
|
50
|
-
function normalizeBasePath(basePath) {
|
|
51
|
-
if (!basePath || basePath === '/') {
|
|
52
|
-
return '';
|
|
53
|
-
}
|
|
54
|
-
// Ensure starts with /
|
|
55
|
-
let normalized = basePath.startsWith('/') ? basePath : `/${basePath}`;
|
|
56
|
-
// Ensure does not end with /
|
|
57
|
-
if (normalized.endsWith('/')) {
|
|
58
|
-
normalized = normalized.slice(0, -1);
|
|
59
|
-
}
|
|
60
|
-
return normalized;
|
|
61
|
-
}
|
|
62
|
-
function log(level, message, ...args) {
|
|
63
|
-
const prefix = '[route-parser]';
|
|
64
|
-
const logMessage = `${prefix} ${message}`;
|
|
65
|
-
switch (level) {
|
|
66
|
-
case 'log':
|
|
67
|
-
console.log(logMessage, ...args);
|
|
68
|
-
break;
|
|
69
|
-
case 'warn':
|
|
70
|
-
console.warn(logMessage, ...args);
|
|
71
|
-
break;
|
|
72
|
-
case 'error':
|
|
73
|
-
console.error(logMessage, ...args);
|
|
74
|
-
break;
|
|
75
|
-
case 'info':
|
|
76
|
-
console.info(logMessage, ...args);
|
|
77
|
-
break;
|
|
78
|
-
default:
|
|
79
|
-
console.log(logMessage, ...args);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
function calculateFileHash(filePath) {
|
|
83
|
-
try {
|
|
84
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
85
|
-
return crypto.createHash('md5').update(content).digest('hex');
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
log('warn', 'Failed to calculate file hash:', error.message);
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
function isRouteComponent(openingElement) {
|
|
93
|
-
return (t.isJSXIdentifier(openingElement.name) &&
|
|
94
|
-
openingElement.name.name === 'Route');
|
|
95
|
-
}
|
|
96
|
-
function evaluateTemplateLiteral(templateLiteral) {
|
|
97
|
-
const quasis = templateLiteral.quasis;
|
|
98
|
-
const expressions = templateLiteral.expressions;
|
|
99
|
-
if (quasis.length === 1 && expressions.length === 0) {
|
|
100
|
-
return quasis[0].value.raw;
|
|
101
|
-
}
|
|
102
|
-
return quasis.map((q) => q.value.raw).join('');
|
|
103
|
-
}
|
|
104
|
-
function extractRouteInfo(openingElement) {
|
|
105
|
-
const routeInfo = {};
|
|
106
|
-
openingElement.attributes.forEach((attr) => {
|
|
107
|
-
if (t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name)) {
|
|
108
|
-
const name = attr.name.name;
|
|
109
|
-
let value;
|
|
110
|
-
if (attr.value) {
|
|
111
|
-
if (t.isStringLiteral(attr.value)) {
|
|
112
|
-
value = attr.value.value;
|
|
113
|
-
}
|
|
114
|
-
else if (t.isJSXExpressionContainer(attr.value)) {
|
|
115
|
-
const expression = attr.value.expression;
|
|
116
|
-
if (t.isStringLiteral(expression)) {
|
|
117
|
-
value = expression.value;
|
|
118
|
-
}
|
|
119
|
-
else if (t.isTemplateLiteral(expression)) {
|
|
120
|
-
value = evaluateTemplateLiteral(expression);
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
value = true;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
value = true;
|
|
129
|
-
}
|
|
130
|
-
routeInfo[name] = value;
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
return routeInfo;
|
|
134
|
-
}
|
|
135
|
-
function buildFullPath(routeStack, currentRoute) {
|
|
136
|
-
let fullPath = '';
|
|
137
|
-
for (let i = 0; i < routeStack.length; i++) {
|
|
138
|
-
if (routeStack[i].path) {
|
|
139
|
-
let parentPath = routeStack[i].path;
|
|
140
|
-
if (!parentPath.startsWith('/'))
|
|
141
|
-
parentPath = `/${parentPath}`;
|
|
142
|
-
if (parentPath.endsWith('/') && parentPath !== '/') {
|
|
143
|
-
parentPath = parentPath.slice(0, -1);
|
|
144
|
-
}
|
|
145
|
-
fullPath += parentPath === '/' ? '' : parentPath;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (currentRoute.index) {
|
|
149
|
-
return fullPath || '/';
|
|
150
|
-
}
|
|
151
|
-
else if (currentRoute.path) {
|
|
152
|
-
const routePath = currentRoute.path;
|
|
153
|
-
if (routePath === '*') {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
if (!routePath.startsWith('/')) {
|
|
157
|
-
fullPath = `${fullPath}/${routePath}`;
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
fullPath = routePath;
|
|
161
|
-
}
|
|
162
|
-
if (fullPath === '')
|
|
163
|
-
fullPath = '/';
|
|
164
|
-
if (!fullPath.startsWith('/'))
|
|
165
|
-
fullPath = `/${fullPath}`;
|
|
166
|
-
return fullPath;
|
|
167
|
-
}
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
function parseRoutes(appPath, basePath) {
|
|
171
|
-
try {
|
|
172
|
-
const appFilePath = path.resolve(process.cwd(), appPath);
|
|
173
|
-
if (!fs.existsSync(appFilePath)) {
|
|
174
|
-
throw new Error(`App.tsx file does not exist: ${appFilePath}`);
|
|
175
|
-
}
|
|
176
|
-
const sourceCode = fs.readFileSync(appFilePath, 'utf-8');
|
|
177
|
-
const ast = (0, parser_1.parse)(sourceCode, {
|
|
178
|
-
sourceType: 'module',
|
|
179
|
-
plugins: [
|
|
180
|
-
'jsx',
|
|
181
|
-
'typescript',
|
|
182
|
-
'decorators-legacy',
|
|
183
|
-
'classProperties',
|
|
184
|
-
'objectRestSpread',
|
|
185
|
-
'functionBind',
|
|
186
|
-
'exportDefaultFrom',
|
|
187
|
-
'exportNamespaceFrom',
|
|
188
|
-
'dynamicImport',
|
|
189
|
-
'nullishCoalescingOperator',
|
|
190
|
-
'optionalChaining',
|
|
191
|
-
],
|
|
192
|
-
});
|
|
193
|
-
const routeSet = new Set();
|
|
194
|
-
const routeStack = [];
|
|
195
|
-
(0, traverse_1.default)(ast, {
|
|
196
|
-
JSXElement: {
|
|
197
|
-
enter(nodePath) {
|
|
198
|
-
const { openingElement } = nodePath.node;
|
|
199
|
-
if (isRouteComponent(openingElement)) {
|
|
200
|
-
const routeInfo = extractRouteInfo(openingElement);
|
|
201
|
-
routeStack.push(routeInfo);
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
exit(nodePath) {
|
|
205
|
-
const { openingElement } = nodePath.node;
|
|
206
|
-
if (isRouteComponent(openingElement)) {
|
|
207
|
-
const currentRoute = routeStack.pop();
|
|
208
|
-
if (currentRoute && currentRoute.path === '*') {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
if (currentRoute && (currentRoute.path || currentRoute.index)) {
|
|
212
|
-
const fullPath = buildFullPath(routeStack, currentRoute);
|
|
213
|
-
if (fullPath) {
|
|
214
|
-
routeSet.add(fullPath);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
});
|
|
221
|
-
// Apply basePath to all routes (align with rspack behavior)
|
|
222
|
-
const routes = Array.from(routeSet).map((routePath) => ({
|
|
223
|
-
path: basePath ? `${basePath}${routePath}` : routePath,
|
|
224
|
-
}));
|
|
225
|
-
// Default route also needs basePath
|
|
226
|
-
const defaultPath = basePath ? `${basePath}/` : '/';
|
|
227
|
-
return routes.length > 0 ? routes : [{ path: defaultPath }];
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
log('warn', 'Route parsing failed, using default routes:', error.message);
|
|
231
|
-
const defaultPath = basePath ? `${basePath}/` : '/';
|
|
232
|
-
return [{ path: defaultPath }];
|
|
233
|
-
}
|
|
234
|
-
}
|
|
40
|
+
const devtool_kits_1 = require("@lark-apaas/devtool-kits");
|
|
41
|
+
// Re-export for backward compatibility
|
|
42
|
+
var devtool_kits_2 = require("@lark-apaas/devtool-kits");
|
|
43
|
+
Object.defineProperty(exports, "normalizeBasePath", { enumerable: true, get: function () { return devtool_kits_2.normalizeBasePath; } });
|
|
44
|
+
Object.defineProperty(exports, "parseRoutes", { enumerable: true, get: function () { return devtool_kits_2.parseRoutesFromFile; } });
|
|
235
45
|
function generateRoutes(appPath, outputPath, basePath, lastHash, cachedRoutes) {
|
|
236
46
|
const appFilePath = path.resolve(process.cwd(), appPath);
|
|
237
47
|
const defaultPath = basePath ? `${basePath}/` : '/';
|
|
238
48
|
if (!fs.existsSync(appFilePath)) {
|
|
239
|
-
|
|
49
|
+
(0, devtool_kits_1.routeParserLog)('warn', `App.tsx file does not exist: ${appFilePath}`);
|
|
240
50
|
return cachedRoutes.value || [{ path: defaultPath }];
|
|
241
51
|
}
|
|
242
|
-
const currentHash = calculateFileHash(appFilePath);
|
|
243
|
-
// Check if we need to regenerate
|
|
52
|
+
const currentHash = (0, devtool_kits_1.calculateFileHash)(appFilePath);
|
|
244
53
|
if (lastHash.value === currentHash && cachedRoutes.value) {
|
|
245
54
|
return cachedRoutes.value;
|
|
246
55
|
}
|
|
247
56
|
lastHash.value = currentHash;
|
|
248
|
-
const routes =
|
|
57
|
+
const routes = (0, devtool_kits_1.parseRoutesFromFile)(appPath, basePath);
|
|
249
58
|
cachedRoutes.value = routes;
|
|
250
|
-
// Ensure output directory exists
|
|
251
59
|
const outputDir = path.dirname(outputPath);
|
|
252
60
|
if (!fs.existsSync(outputDir)) {
|
|
253
61
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
254
62
|
}
|
|
255
|
-
// Write routes.json
|
|
256
63
|
fs.writeFileSync(outputPath, JSON.stringify(routes, null, 2));
|
|
257
|
-
|
|
64
|
+
(0, devtool_kits_1.routeParserLog)('info', `Generated routes.json (${routes.length} routes)`);
|
|
258
65
|
return routes;
|
|
259
66
|
}
|
|
260
67
|
function routeParserPlugin(options = {}) {
|
|
261
68
|
const { appPath = './client/src/app.tsx', outputPath = './dist/client/routes.json', } = options;
|
|
262
|
-
// Get basePath from options or env variable, normalize it (align with rspack behavior)
|
|
263
|
-
// Use ?? so that explicit empty string '' from options is respected (for dev mode)
|
|
264
|
-
// Only undefined falls back to env variable (for prod mode)
|
|
265
69
|
const envBasePath = process.env.CLIENT_BASE_PATH || '';
|
|
266
|
-
const configuredBasePath = normalizeBasePath(options.basePath ?? envBasePath);
|
|
267
|
-
|
|
268
|
-
// This should always be the clientBasePath, not affected by dev/prod basePath logic
|
|
269
|
-
const serveBasePath = normalizeBasePath(options.serveBasePath ?? envBasePath);
|
|
270
|
-
// Single cache (basePath is controlled by caller, like rspack)
|
|
70
|
+
const configuredBasePath = (0, devtool_kits_1.normalizeBasePath)(options.basePath ?? envBasePath);
|
|
71
|
+
const serveBasePath = (0, devtool_kits_1.normalizeBasePath)(options.serveBasePath ?? envBasePath);
|
|
271
72
|
const lastHash = { value: null };
|
|
272
73
|
const cachedRoutes = { value: null };
|
|
273
74
|
return {
|
|
274
75
|
name: 'fullstack-route-parser',
|
|
275
76
|
configureServer(server) {
|
|
276
|
-
// Development mode: use configuredBasePath (should be '' when isDev, set by preset)
|
|
277
77
|
const appFullPath = path.resolve(process.cwd(), appPath);
|
|
278
78
|
const fullOutputPath = path.resolve(process.cwd(), outputPath);
|
|
279
|
-
// Initial generation
|
|
280
79
|
generateRoutes(appPath, fullOutputPath, configuredBasePath, lastHash, cachedRoutes);
|
|
281
|
-
// Watch for changes
|
|
282
80
|
server.watcher.add(appFullPath);
|
|
283
81
|
server.watcher.on('change', (file) => {
|
|
284
82
|
if (file === appFullPath) {
|
|
285
83
|
generateRoutes(appPath, fullOutputPath, configuredBasePath, lastHash, cachedRoutes);
|
|
286
84
|
}
|
|
287
85
|
});
|
|
288
|
-
// Middleware to serve routes.json at ${serveBasePath}/routes.json
|
|
289
|
-
// serveBasePath is based on clientBasePath (not affected by dev/prod basePath logic)
|
|
290
86
|
const routesJsonPath = serveBasePath ? `${serveBasePath}/routes.json` : '/routes.json';
|
|
291
87
|
server.middlewares.use((req, res, next) => {
|
|
292
88
|
const urlPath = req.url?.split('?')[0];
|
|
@@ -305,12 +101,10 @@ function routeParserPlugin(options = {}) {
|
|
|
305
101
|
});
|
|
306
102
|
},
|
|
307
103
|
buildStart() {
|
|
308
|
-
// Build mode: generate routes with configuredBasePath
|
|
309
104
|
const fullOutputPath = path.resolve(process.cwd(), outputPath);
|
|
310
105
|
generateRoutes(appPath, fullOutputPath, configuredBasePath, lastHash, cachedRoutes);
|
|
311
106
|
},
|
|
312
107
|
generateBundle() {
|
|
313
|
-
// Add routes.json to build output
|
|
314
108
|
const fullOutputPath = path.resolve(process.cwd(), outputPath);
|
|
315
109
|
if (fs.existsSync(fullOutputPath)) {
|
|
316
110
|
this.emitFile({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-parser-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/route-parser-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route-parser-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/route-parser-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slardar-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,MAAM,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"slardar-plugin.d.ts","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAqB,MAAM,MAAM,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,CAsCxE;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -11,10 +11,14 @@ function getSlardarScript(bid, globalName) {
|
|
|
11
11
|
slardarScript.onload = function() {
|
|
12
12
|
// Initialize after script loads
|
|
13
13
|
if (window.${globalName}) {
|
|
14
|
+
window.${globalName}('context.merge', {
|
|
15
|
+
tenantId: window.tenantId ?? '',
|
|
16
|
+
appId: window.appId ?? '',
|
|
17
|
+
});
|
|
14
18
|
window.${globalName}('init', {
|
|
15
19
|
bid: '${bid}',
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
env: window.ENVIRONMENT || 'online',
|
|
21
|
+
userId: window.userId ?? '',
|
|
18
22
|
});
|
|
19
23
|
window.${globalName}('start');
|
|
20
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slardar-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"slardar-plugin.js","sourceRoot":"","sources":["../../src/vite-plugins/slardar-plugin.ts"],"names":[],"mappings":";;AAwEA,sCAsCC;AArGD,SAAS,gBAAgB,CAAC,GAAW,EAAE,UAAkB;IACvD,OAAO;;gGAEuF,GAAG,eAAe,UAAU;;;;;;mBAMzG,UAAU;iBACZ,UAAU;;;;iBAIV,UAAU;kBACT,GAAG;;;;iBAIJ,UAAU;;;;;;;;;;;GAWxB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BN,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,EAAE,GAAG,GAAG,cAAc,EAAE,UAAU,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,mBAAmB;QAEzB,kBAAkB,CAAC,IAAI;YACrB,MAAM,IAAI,GAAwB;gBAChC,4BAA4B;gBAC5B;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC3C,QAAQ,EAAE,MAAM;iBACjB;gBACD,kBAAkB;gBAClB;oBACE,GAAG,EAAE,QAAQ;oBACb,KAAK,EAAE;wBACL,GAAG,EAAE,gGAAgG;wBACrG,WAAW,EAAE,WAAW;wBACxB,KAAK,EAAE,IAAI;qBACZ;oBACD,QAAQ,EAAE,MAAM;iBACjB;gBACD,wBAAwB;gBACxB;oBACE,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,YAAY,EAAE;oBACxB,QAAQ,EAAE,MAAM;iBACjB;aACF,CAAC;YAEF,OAAO;gBACL,IAAI;gBACJ,IAAI;aACL,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kBAAe,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-apaas/fullstack-vite-preset",
|
|
3
|
-
"version": "1.0.9-alpha.
|
|
3
|
+
"version": "1.0.9-alpha.41",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src/empty.css",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"@babel/parser": "^7.28.0",
|
|
34
34
|
"@babel/traverse": "^7.28.0",
|
|
35
35
|
"@babel/types": "^7.28.2",
|
|
36
|
-
"@lark-apaas/devtool-kits": "
|
|
36
|
+
"@lark-apaas/devtool-kits": "1.2.17-alpha.53",
|
|
37
37
|
"@lark-apaas/styled-jsx": "^1.0.1",
|
|
38
|
-
"@lark-apaas/vite-inspector-plugin": "^1.0.
|
|
38
|
+
"@lark-apaas/vite-inspector-plugin": "^1.0.3",
|
|
39
39
|
"@vitejs/plugin-react": "^4.5.0",
|
|
40
40
|
"clsx": "^2.1.1",
|
|
41
41
|
"colorjs.io": "^0.5.2",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/node": "^22.15.30",
|
|
57
57
|
"typescript": "^5.9.2",
|
|
58
58
|
"vite": "^7.0.0",
|
|
59
|
-
"vitest": "^2.
|
|
59
|
+
"vitest": "^3.2.4"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"react": ">=16.14.0",
|
package/src/overlay/index.js
CHANGED
|
@@ -145,6 +145,24 @@ function removeAllChildren(element, skip) {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
function getParentOriginFromParams() {
|
|
149
|
+
try {
|
|
150
|
+
var params = new URLSearchParams(window.location.search);
|
|
151
|
+
var origin = params.get('__parentOrigin');
|
|
152
|
+
if (origin) {
|
|
153
|
+
sessionStorage.setItem('__parentOrigin', origin);
|
|
154
|
+
return origin;
|
|
155
|
+
}
|
|
156
|
+
} catch (e) {
|
|
157
|
+
// ignore
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
return sessionStorage.getItem('__parentOrigin') || '';
|
|
161
|
+
} catch (e) {
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
148
166
|
function getLegacyParentOrigin() {
|
|
149
167
|
const currentOrigin = window.location?.origin || '';
|
|
150
168
|
if (currentOrigin.includes('force.feishuapp.net')) {
|
|
@@ -167,7 +185,7 @@ function getLegacyParentOrigin() {
|
|
|
167
185
|
|
|
168
186
|
function sendPostMessage(message, targetOrigin) {
|
|
169
187
|
try {
|
|
170
|
-
const parentOrigin = process?.env?.FORCE_FRAMEWORK_DOMAIN_MAIN || getLegacyParentOrigin();
|
|
188
|
+
const parentOrigin = getParentOriginFromParams() || process?.env?.FORCE_FRAMEWORK_DOMAIN_MAIN || getLegacyParentOrigin();
|
|
171
189
|
const origin = targetOrigin || parentOrigin;
|
|
172
190
|
window.parent.postMessage(message, origin);
|
|
173
191
|
} catch (error) {
|
|
@@ -43,6 +43,7 @@ if (!window.__VITE_ERROR_OVERLAY_INITIALIZED__) {
|
|
|
43
43
|
|
|
44
44
|
// ===== HMR API State (用于 toolkit 的统一 HMR API) =====
|
|
45
45
|
let hasErrorInCurrentUpdate = false;
|
|
46
|
+
const hmrBeforeApplyCallbacks = new Set();
|
|
46
47
|
const hmrSuccessCallbacks = new Set();
|
|
47
48
|
const hmrErrorCallbacks = new Set();
|
|
48
49
|
|
|
@@ -120,6 +121,24 @@ if (!window.__VITE_ERROR_OVERLAY_INITIALIZED__) {
|
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
// ===== PostMessage 通信 (与 rspack 对齐) =====
|
|
124
|
+
function getParentOriginFromParams() {
|
|
125
|
+
try {
|
|
126
|
+
var params = new URLSearchParams(window.location.search);
|
|
127
|
+
var origin = params.get('__parentOrigin');
|
|
128
|
+
if (origin) {
|
|
129
|
+
sessionStorage.setItem('__parentOrigin', origin);
|
|
130
|
+
return origin;
|
|
131
|
+
}
|
|
132
|
+
} catch (e) {
|
|
133
|
+
// ignore
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
return sessionStorage.getItem('__parentOrigin') || '';
|
|
137
|
+
} catch (e) {
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
123
142
|
function getLegacyParentOrigin() {
|
|
124
143
|
const currentOrigin = window.location?.origin || '';
|
|
125
144
|
if (currentOrigin.includes('force.feishuapp.net')) {
|
|
@@ -142,7 +161,7 @@ if (!window.__VITE_ERROR_OVERLAY_INITIALIZED__) {
|
|
|
142
161
|
|
|
143
162
|
function sendPostMessage(message, targetOrigin) {
|
|
144
163
|
try {
|
|
145
|
-
const parentOrigin = process.env.FORCE_FRAMEWORK_DOMAIN_MAIN || getLegacyParentOrigin();
|
|
164
|
+
const parentOrigin = getParentOriginFromParams() || process.env.FORCE_FRAMEWORK_DOMAIN_MAIN || getLegacyParentOrigin();
|
|
146
165
|
const origin = targetOrigin || parentOrigin;
|
|
147
166
|
window.parent.postMessage(message, origin);
|
|
148
167
|
} catch (error) {
|
|
@@ -405,8 +424,15 @@ if (!window.__VITE_ERROR_OVERLAY_INITIALIZED__) {
|
|
|
405
424
|
const { createHotContext } = await import(CLIENT_BASE_PATH + '/@vite/client');
|
|
406
425
|
const hot = createHotContext(CLIENT_BASE_PATH + '/@error-overlay.js');
|
|
407
426
|
|
|
408
|
-
// ===== HMR API: beforeUpdate - 重置错误标志 =====
|
|
427
|
+
// ===== HMR API: beforeUpdate - 通知 onBeforeApply 回调 + 重置错误标志 =====
|
|
409
428
|
hot.on('vite:beforeUpdate', () => {
|
|
429
|
+
hmrBeforeApplyCallbacks.forEach((cb) => {
|
|
430
|
+
try {
|
|
431
|
+
cb();
|
|
432
|
+
} catch (e) {
|
|
433
|
+
console.warn('[VITE_HMR] onBeforeApply callback error:', e);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
410
436
|
hasErrorInCurrentUpdate = false;
|
|
411
437
|
});
|
|
412
438
|
|
|
@@ -493,6 +519,15 @@ if (!window.__VITE_ERROR_OVERLAY_INITIALIZED__) {
|
|
|
493
519
|
// ===== Expose HMR API (用于 toolkit 的统一 HMR API) =====
|
|
494
520
|
// @see docs/RFC_HMR_API.md
|
|
495
521
|
window.__VITE_HMR__ = {
|
|
522
|
+
/**
|
|
523
|
+
* 注册 HMR 更新前回调(vite:beforeUpdate 阶段,模块替换之前)
|
|
524
|
+
* @param {Function} callback 回调函数
|
|
525
|
+
* @returns {Function} cleanup 函数
|
|
526
|
+
*/
|
|
527
|
+
onBeforeApply(callback) {
|
|
528
|
+
hmrBeforeApplyCallbacks.add(callback);
|
|
529
|
+
return () => hmrBeforeApplyCallbacks.delete(callback);
|
|
530
|
+
},
|
|
496
531
|
/**
|
|
497
532
|
* 注册 HMR 成功回调
|
|
498
533
|
* @param {Function} callback 成功回调函数
|