按显式配置控制 Windows sccache
未配置 wrapper 时默认回退到直接 rustc 处理 sccache 探测失败与 wrapper 配置冲突 同步更新开发运维和排障文档
This commit is contained in:
+25
-11
@@ -591,23 +591,37 @@ function buildLocalRustProcessEnv(env, options = {}) {
|
||||
String(mergedEnv.RUSTC_WRAPPER ?? '').trim(),
|
||||
String(mergedEnv.CARGO_BUILD_RUSTC_WRAPPER ?? '').trim(),
|
||||
].filter(Boolean);
|
||||
const customWrapper = wrappers.find(
|
||||
(wrapper) => !isSccacheRustcWrapper(wrapper),
|
||||
);
|
||||
if (customWrapper) {
|
||||
mergedEnv.RUSTC_WRAPPER = customWrapper;
|
||||
mergedEnv.CARGO_BUILD_RUSTC_WRAPPER = customWrapper;
|
||||
const uniqueWrappers = [...new Set(wrappers)];
|
||||
if (uniqueWrappers.length > 1) {
|
||||
mergedEnv.RUSTC_WRAPPER = '';
|
||||
mergedEnv.CARGO_BUILD_RUSTC_WRAPPER = '';
|
||||
if (options.log !== false) {
|
||||
console.warn(
|
||||
'[dev:rust] RUSTC_WRAPPER 与 CARGO_BUILD_RUSTC_WRAPPER 配置冲突,回退到直接 rustc。',
|
||||
);
|
||||
}
|
||||
return mergedEnv;
|
||||
}
|
||||
|
||||
const rustcWrapperBypass = resolveLocalDevRustcWrapperBypass(options);
|
||||
mergedEnv.RUSTC_WRAPPER = rustcWrapperBypass;
|
||||
mergedEnv.CARGO_BUILD_RUSTC_WRAPPER = rustcWrapperBypass;
|
||||
const configuredWrapper = uniqueWrappers[0] ?? '';
|
||||
if (configuredWrapper && !isSccacheRustcWrapper(configuredWrapper)) {
|
||||
mergedEnv.RUSTC_WRAPPER = configuredWrapper;
|
||||
mergedEnv.CARGO_BUILD_RUSTC_WRAPPER = configuredWrapper;
|
||||
return mergedEnv;
|
||||
}
|
||||
|
||||
const rustcWrapper = configuredWrapper
|
||||
? resolveLocalDevRustcWrapperBypass(options)
|
||||
: '';
|
||||
mergedEnv.RUSTC_WRAPPER = rustcWrapper;
|
||||
mergedEnv.CARGO_BUILD_RUSTC_WRAPPER = rustcWrapper;
|
||||
if (options.log !== false) {
|
||||
console.warn(
|
||||
rustcWrapperBypass
|
||||
rustcWrapper
|
||||
? '[dev:rust] 本地 dev 构建启用 sccache wrapper。'
|
||||
: '[dev:rust] 本地 dev 构建未找到可用 sccache,回退到直接 rustc。',
|
||||
: configuredWrapper
|
||||
? '[dev:rust] sccache wrapper 探测失败,回退到直接 rustc。'
|
||||
: '[dev:rust] 未显式配置 Rust wrapper,使用直接 rustc。',
|
||||
);
|
||||
}
|
||||
return mergedEnv;
|
||||
|
||||
Reference in New Issue
Block a user