mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-20 14:39:25 +08:00
40 lines
1012 B
TypeScript
40 lines
1012 B
TypeScript
import { join, dirname } from 'path'
|
|
|
|
/**
|
|
* 强制将本地资源目录添加到 PATH 最前端,确保优先加载本地 DLL
|
|
* 解决系统中存在冲突版本的 DLL 导致的应用崩溃问题
|
|
*/
|
|
function enforceLocalDllPriority() {
|
|
const isDev = !!process.env.VITE_DEV_SERVER_URL
|
|
const sep = process.platform === 'win32' ? ';' : ':'
|
|
|
|
let possiblePaths: string[] = []
|
|
|
|
if (isDev) {
|
|
// 开发环境
|
|
possiblePaths.push(join(process.cwd(), 'resources'))
|
|
} else {
|
|
// 生产环境
|
|
possiblePaths.push(dirname(process.execPath))
|
|
if (process.resourcesPath) {
|
|
possiblePaths.push(process.resourcesPath)
|
|
}
|
|
}
|
|
|
|
const dllPaths = possiblePaths.join(sep)
|
|
|
|
if (process.env.PATH) {
|
|
process.env.PATH = dllPaths + sep + process.env.PATH
|
|
} else {
|
|
process.env.PATH = dllPaths
|
|
}
|
|
|
|
|
|
}
|
|
|
|
try {
|
|
enforceLocalDllPriority()
|
|
} catch (e) {
|
|
console.error('[WeFlow] Failed to enforce local DLL priority:', e)
|
|
}
|