@lark-apaas/miaoda-cli 0.1.18-alpha.b094028 → 0.1.18-alpha.f786906
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.
|
@@ -108,10 +108,15 @@ async function handleAppMigrate(opts) {
|
|
|
108
108
|
(0, logger_1.log)('migrate', '清理 node_modules(dependencies 集合已变)...');
|
|
109
109
|
node_fs_1.default.rmSync(nodeModulesPath, { recursive: true, force: true });
|
|
110
110
|
}
|
|
111
|
-
// 跑 npm install 物化新依赖集合 + 把 followLatestPackages 钉
|
|
111
|
+
// 跑 npm install 物化新依赖集合 + 把 followLatestPackages 钉 alpha(临时)
|
|
112
112
|
// --ignore-scripts 绕开 action-plugin postinstall 在缺平台 env 时的 ENOENT
|
|
113
113
|
// --registry 钉同一份 npmmirror(跟 init / sync 行为一致)
|
|
114
114
|
// 软失败:install 挂了不阻断 emit;用户拿到详细 error,自行 npm install 兜底
|
|
115
|
+
//
|
|
116
|
+
// ⚠️ TEMP:原本钉 @latest,临时改成 @alpha 让沙箱 migrate 后能拉到含 504 /
|
|
117
|
+
// 502 / LogsAPI / server-log middleware 4 项 fix 的 preset alpha 版本
|
|
118
|
+
// (@lark-apaas/coding-preset-vite-react 当前最新 alpha)。fullstack-plugin
|
|
119
|
+
// MR #1143 合班车 + chiya 发完 latest 后改回 @latest。
|
|
115
120
|
const followLatest = config.followLatestPackages ?? [];
|
|
116
121
|
const installArgs = [
|
|
117
122
|
'install',
|
|
@@ -120,7 +125,7 @@ async function handleAppMigrate(opts) {
|
|
|
120
125
|
'--ignore-scripts',
|
|
121
126
|
'--registry',
|
|
122
127
|
(0, index_2.resolveNpmInstallRegistry)(),
|
|
123
|
-
...followLatest.map((pkg) => `${pkg}@
|
|
128
|
+
...followLatest.map((pkg) => `${pkg}@alpha`),
|
|
124
129
|
];
|
|
125
130
|
(0, logger_1.log)('migrate', `Running npm ${installArgs.join(' ')}...`);
|
|
126
131
|
let installError;
|
|
@@ -170,6 +175,32 @@ async function handleAppMigrate(opts) {
|
|
|
170
175
|
(0, logger_1.log)('migrate', `⚠ vite optimize prewarm failed (continuing): ${optimizeError}`);
|
|
171
176
|
}
|
|
172
177
|
}
|
|
178
|
+
// 重启 dev process 前清 vite cache —— migrate 改了 package.json + lockfile,
|
|
179
|
+
// 老 vite 进程的 .vite/deps cache 的 lockfileHash 跟新 lockfile 不一致。
|
|
180
|
+
// 不清的话 supervisor 拉起的新 vite cold start 会立即 "Re-optimizing because
|
|
181
|
+
// lockfile has changed", re-optimize 期间 ModuleGraph transform cache 跟
|
|
182
|
+
// deps middleware metadata 短暂不同步, 浏览器请求老 hash 触发
|
|
183
|
+
// ERR_OUTDATED_OPTIMIZED_DEP → 504 死锁(详见 fullstack-plugin#1143 的 504
|
|
184
|
+
// ignoreOutdatedRequests fix 注释)。直接 rm -rf 让新 vite 从干净状态 cold
|
|
185
|
+
// optimize, 一次写到位 lockfile 一致的 metadata, 不再触发中途 re-optimize。
|
|
186
|
+
//
|
|
187
|
+
// - 只在 SANDBOX_ID 非空时做(本地一般不会撞这条链路)
|
|
188
|
+
// - 只在 install 成功时做(install 挂了 node_modules 状态不对, 清 cache 也救不回来)
|
|
189
|
+
// - 软失败:.vite 不存在 / 删失败都不阻断
|
|
190
|
+
if (installError === undefined &&
|
|
191
|
+
process.env.SANDBOX_ID !== undefined &&
|
|
192
|
+
process.env.SANDBOX_ID !== '') {
|
|
193
|
+
const viteCacheDir = node_path_1.default.join(targetDir, 'node_modules', '.vite');
|
|
194
|
+
if (node_fs_1.default.existsSync(viteCacheDir)) {
|
|
195
|
+
(0, logger_1.log)('migrate', '清理 node_modules/.vite (vite cache 跟新 lockfile 错位会 504)...');
|
|
196
|
+
try {
|
|
197
|
+
node_fs_1.default.rmSync(viteCacheDir, { recursive: true, force: true });
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
(0, logger_1.log)('migrate', `⚠ 清 .vite 失败 (continuing): ${err instanceof Error ? err.message : String(err)}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
173
204
|
// 沙箱环境下重启 dev process —— scripts/dev.js 被 fullstack 版本覆盖了,但当前正在
|
|
174
205
|
// 跑的 node 进程仍按老逻辑工作(只起 vite,没起 nest),整体没切到 fullstack 模式。
|
|
175
206
|
// 通过 pkill 杀掉 dev.js 主进程,依赖沙箱平台 supervisor 自动重新 exec dev.sh → dev.js,
|