1
This commit is contained in:
@@ -37,14 +37,30 @@ loadEnvFile(resolve(repoRoot, '.env'), fileEnv);
|
||||
loadEnvFile(resolve(repoRoot, '.env.local'), fileEnv);
|
||||
loadEnvFile(resolve(repoRoot, '.env.secrets.local'), fileEnv);
|
||||
|
||||
function buildTargetCandidates() {
|
||||
function resolveConfiguredTarget() {
|
||||
if (fileEnv.GENARRATIVE_RUNTIME_SERVER_TARGET) {
|
||||
return fileEnv.GENARRATIVE_RUNTIME_SERVER_TARGET;
|
||||
}
|
||||
|
||||
if (fileEnv.RUST_SERVER_TARGET) {
|
||||
return fileEnv.RUST_SERVER_TARGET;
|
||||
}
|
||||
|
||||
if (fileEnv.GENARRATIVE_API_TARGET) {
|
||||
return fileEnv.GENARRATIVE_API_TARGET;
|
||||
}
|
||||
|
||||
if (fileEnv.GENARRATIVE_API_PORT) {
|
||||
return `http://127.0.0.1:${fileEnv.GENARRATIVE_API_PORT}`;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
function buildFallbackCandidates() {
|
||||
const candidates = [
|
||||
fileEnv.GENARRATIVE_RUNTIME_SERVER_TARGET,
|
||||
fileEnv.RUST_SERVER_TARGET,
|
||||
fileEnv.GENARRATIVE_API_TARGET,
|
||||
`http://127.0.0.1:${fileEnv.GENARRATIVE_API_PORT || '3100'}`,
|
||||
'http://127.0.0.1:8082',
|
||||
'http://127.0.0.1:3100',
|
||||
'http://127.0.0.1:8082',
|
||||
].filter(Boolean);
|
||||
|
||||
return Array.from(new Set(candidates));
|
||||
@@ -70,39 +86,30 @@ async function isTargetReachable(target) {
|
||||
}
|
||||
|
||||
async function resolveRuntimeTarget() {
|
||||
const candidates = buildTargetCandidates();
|
||||
const reachableTargets = [];
|
||||
const configuredTarget = resolveConfiguredTarget();
|
||||
|
||||
for (const target of candidates) {
|
||||
if (await isTargetReachable(target)) {
|
||||
reachableTargets.push(target);
|
||||
if (
|
||||
target === fileEnv.GENARRATIVE_RUNTIME_SERVER_TARGET ||
|
||||
target === fileEnv.RUST_SERVER_TARGET ||
|
||||
target === fileEnv.GENARRATIVE_API_TARGET
|
||||
) {
|
||||
return {
|
||||
target,
|
||||
fallbackUsed: false,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (reachableTargets.length > 0) {
|
||||
if (configuredTarget) {
|
||||
return {
|
||||
target: reachableTargets[0],
|
||||
fallbackUsed: true,
|
||||
target: configuredTarget,
|
||||
fallbackUsed: false,
|
||||
targetUnavailable: !(await isTargetReachable(configuredTarget)),
|
||||
};
|
||||
}
|
||||
|
||||
for (const target of buildFallbackCandidates()) {
|
||||
if (await isTargetReachable(target)) {
|
||||
return {
|
||||
target,
|
||||
fallbackUsed: true,
|
||||
targetUnavailable: false,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
target:
|
||||
fileEnv.GENARRATIVE_RUNTIME_SERVER_TARGET ||
|
||||
fileEnv.RUST_SERVER_TARGET ||
|
||||
fileEnv.GENARRATIVE_API_TARGET ||
|
||||
`http://127.0.0.1:${fileEnv.GENARRATIVE_API_PORT || '3100'}`,
|
||||
target: 'http://127.0.0.1:3100',
|
||||
fallbackUsed: false,
|
||||
targetUnavailable: true,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -113,6 +120,12 @@ if (runtimeTarget.fallbackUsed) {
|
||||
);
|
||||
}
|
||||
|
||||
if (runtimeTarget.targetUnavailable) {
|
||||
console.warn(
|
||||
`[dev:web] Rust target 当前不可用: ${runtimeTarget.target},请先启动 api-server。`,
|
||||
);
|
||||
}
|
||||
|
||||
const mergedEnv = {
|
||||
...fileEnv,
|
||||
RUST_SERVER_TARGET: runtimeTarget.target,
|
||||
|
||||
Reference in New Issue
Block a user