|
@@ -8,24 +8,26 @@ import path from 'node:path';
|
|
|
import { defineConfig } from 'vite';
|
|
import { defineConfig } from 'vite';
|
|
|
import { getViteConfig } from './config/vite/index.js';
|
|
import { getViteConfig } from './config/vite/index.js';
|
|
|
|
|
|
|
|
-// 修复 Windows 下 esbuild 构建失败:
|
|
|
|
|
|
|
+// 仅修复 Windows 下 esbuild 构建失败;其它平台保持原有行为:
|
|
|
// 1. 强制 esbuild 使用 node_modules 中已安装的二进制(跳过解压到临时目录)
|
|
// 1. 强制 esbuild 使用 node_modules 中已安装的二进制(跳过解压到临时目录)
|
|
|
// 2. 把 TEMP/TMP 重定向到项目内的 .tmp 目录,避免 Windows Defender 锁定
|
|
// 2. 把 TEMP/TMP 重定向到项目内的 .tmp 目录,避免 Windows Defender 锁定
|
|
|
// 参见:https://github.com/evanw/esbuild/issues/3645
|
|
// 参见:https://github.com/evanw/esbuild/issues/3645
|
|
|
-const cwd = process.cwd();
|
|
|
|
|
|
|
+if (process.platform === 'win32') {
|
|
|
|
|
+ const cwd = process.cwd();
|
|
|
|
|
|
|
|
-// 方案 1:设置 ESBUILD_BINARY_PATH
|
|
|
|
|
-const binCandidate = path.join(cwd, 'node_modules', '@esbuild', 'win32-x64', 'esbuild.exe');
|
|
|
|
|
-if (fs.existsSync(binCandidate)) {
|
|
|
|
|
- process.env.ESBUILD_BINARY_PATH = binCandidate;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ // 方案 1:设置 ESBUILD_BINARY_PATH
|
|
|
|
|
+ const binCandidate = path.join(cwd, 'node_modules', '@esbuild', 'win32-x64', 'esbuild.exe');
|
|
|
|
|
+ if (fs.existsSync(binCandidate)) {
|
|
|
|
|
+ process.env.ESBUILD_BINARY_PATH = binCandidate;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-// 方案 2:重定向临时目录到项目内(绕开系统 TEMP 的 Defender 扫描)
|
|
|
|
|
-const localTmp = path.join(cwd, '.tmp', 'esbuild');
|
|
|
|
|
-fs.mkdirSync(localTmp, { recursive: true });
|
|
|
|
|
-process.env.TEMP = localTmp;
|
|
|
|
|
-process.env.TMP = localTmp;
|
|
|
|
|
-// 让 os.tmpdir() 也返回新值
|
|
|
|
|
-os.tmpdir = () => localTmp;
|
|
|
|
|
|
|
+ // 方案 2:重定向临时目录到项目内(绕开系统 TEMP 的 Defender 扫描)
|
|
|
|
|
+ const localTmp = path.join(cwd, '.tmp', 'esbuild');
|
|
|
|
|
+ fs.mkdirSync(localTmp, { recursive: true });
|
|
|
|
|
+ process.env.TEMP = localTmp;
|
|
|
|
|
+ process.env.TMP = localTmp;
|
|
|
|
|
+ // 让 os.tmpdir() 也返回新值
|
|
|
|
|
+ os.tmpdir = () => localTmp;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
export default defineConfig(getViteConfig);
|
|
export default defineConfig(getViteConfig);
|