@lark-apaas/fullstack-rspack-preset 1.0.56-alpha.3 → 1.0.56-alpha.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/lib/preset.js +4 -3
- package/lib/utils/local-dev.d.ts +11 -0
- package/lib/utils/local-dev.js +23 -0
- package/package.json +1 -1
package/lib/preset.js
CHANGED
|
@@ -74,10 +74,11 @@ function createRecommendRspackConfig(options) {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
catch { /* ignore */ }
|
|
77
|
-
// 本地 dev 链路兜底:将 {clientBasePath}/__runtime__
|
|
77
|
+
// 本地 dev 链路兜底:将 {clientBasePath}/__runtime__ 反代到公网沙箱
|
|
78
|
+
// (由 MIAODA_DEV_PLATFORM_BASE 或 SANDBOX_PUBLIC_URL 提供 origin),
|
|
78
79
|
// 由 SDK 而非用户应用承担 cookie / x-larkgw-suda-webuser 注入。
|
|
79
80
|
const localDev = (0, local_dev_1.isLocalDev)();
|
|
80
|
-
const sandboxBase =
|
|
81
|
+
const sandboxBase = (0, local_dev_1.resolveSandboxOrigin)();
|
|
81
82
|
const { cookie: outboundCookie, csrfToken: outboundCsrfToken } = (0, local_dev_1.composeSandboxOutboundAuth)();
|
|
82
83
|
let localDevWebUserHeader = '';
|
|
83
84
|
if (process.env.SUDA_WEBUSER) {
|
|
@@ -86,7 +87,7 @@ function createRecommendRspackConfig(options) {
|
|
|
86
87
|
}
|
|
87
88
|
catch { /* ignore */ }
|
|
88
89
|
}
|
|
89
|
-
//
|
|
90
|
+
// 沙箱上 /__runtime__/* 的路由本身就期望带 /app/<appId> 前缀
|
|
90
91
|
// (跟生产网关 miaoda.feishu-boe.cn 的行为一致),所以直接透传完整路径,不做 pathRewrite。
|
|
91
92
|
const localDevRuntimeProxyEntries = localDev && sandboxBase
|
|
92
93
|
? [{
|
package/lib/utils/local-dev.d.ts
CHANGED
|
@@ -18,3 +18,14 @@ export declare function composeSandboxOutboundAuth(): {
|
|
|
18
18
|
cookie: string;
|
|
19
19
|
csrfToken: string;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* 解析沙箱反代的 target origin。两条入口:
|
|
23
|
+
* - 新流(推荐):env `MIAODA_DEV_PLATFORM_BASE` —— 后端下发的完整 URL,**可能带路径前缀**
|
|
24
|
+
* (例如 `https://ai-tenant-<app>-<sandbox>.aiforce-boe-preview.bytedance.net/app/<app>`)。
|
|
25
|
+
* SDK 抽 `new URL(...).origin` 拿 host,扔掉路径——避免反代 target 双前缀。
|
|
26
|
+
* - 老流(兼容):env `SANDBOX_PUBLIC_URL`(用户从沙箱信息手抠 host)。
|
|
27
|
+
*
|
|
28
|
+
* 两个都给的话 `MIAODA_DEV_PLATFORM_BASE` 优先。两个都缺的话返回空字符串
|
|
29
|
+
* (local dev 跑不通,但不抛错——交给上层 `localDev && sandboxBase` 条件兜底)。
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveSandboxOrigin(): string;
|
package/lib/utils/local-dev.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isLocalDev = isLocalDev;
|
|
4
4
|
exports.composeSandboxOutboundAuth = composeSandboxOutboundAuth;
|
|
5
|
+
exports.resolveSandboxOrigin = resolveSandboxOrigin;
|
|
5
6
|
/**
|
|
6
7
|
* 本地开发总开关。由 dev-local.sh export `MIAODA_LOCAL_DEV=1`;
|
|
7
8
|
* 沙箱 dev / 生产都不设此 env。
|
|
@@ -40,3 +41,25 @@ function composeSandboxOutboundAuth() {
|
|
|
40
41
|
}
|
|
41
42
|
return { cookie: '', csrfToken: '' };
|
|
42
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* 解析沙箱反代的 target origin。两条入口:
|
|
46
|
+
* - 新流(推荐):env `MIAODA_DEV_PLATFORM_BASE` —— 后端下发的完整 URL,**可能带路径前缀**
|
|
47
|
+
* (例如 `https://ai-tenant-<app>-<sandbox>.aiforce-boe-preview.bytedance.net/app/<app>`)。
|
|
48
|
+
* SDK 抽 `new URL(...).origin` 拿 host,扔掉路径——避免反代 target 双前缀。
|
|
49
|
+
* - 老流(兼容):env `SANDBOX_PUBLIC_URL`(用户从沙箱信息手抠 host)。
|
|
50
|
+
*
|
|
51
|
+
* 两个都给的话 `MIAODA_DEV_PLATFORM_BASE` 优先。两个都缺的话返回空字符串
|
|
52
|
+
* (local dev 跑不通,但不抛错——交给上层 `localDev && sandboxBase` 条件兜底)。
|
|
53
|
+
*/
|
|
54
|
+
function resolveSandboxOrigin() {
|
|
55
|
+
const platformBase = process.env.MIAODA_DEV_PLATFORM_BASE;
|
|
56
|
+
if (platformBase) {
|
|
57
|
+
try {
|
|
58
|
+
return new URL(platformBase).origin;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// 非合法 URL → 回落到 legacy
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return process.env.SANDBOX_PUBLIC_URL || '';
|
|
65
|
+
}
|