ZhaoShanGeng
commited on
Commit
·
91281d5
1
Parent(s):
4a6722f
perf: 只打包对应平台的 bin 文件
Browse files- Linux x64 只打包 antigravity_requester_linux_amd64
- Windows x64 只打包 antigravity_requester_windows_amd64.exe
- Linux ARM64 只打包 antigravity_requester_android_arm64
- 减少约 16MB 的镜像大小
- scripts/build.js +37 -11
scripts/build.js
CHANGED
|
@@ -49,6 +49,15 @@ const outputNameMap = {
|
|
| 49 |
'node18-macos-arm64': 'antigravity-macos-arm64'
|
| 50 |
};
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
console.log('📦 Step 1: Bundling with esbuild...');
|
| 53 |
|
| 54 |
// 使用 esbuild 打包成 CommonJS
|
|
@@ -196,7 +205,7 @@ try {
|
|
| 196 |
console.log(' ✓ Copied public directory');
|
| 197 |
}
|
| 198 |
|
| 199 |
-
// 复制 bin
|
| 200 |
const binSrcDir = path.join(rootDir, 'src', 'bin');
|
| 201 |
const binDestDir = path.join(distDir, 'bin');
|
| 202 |
if (fs.existsSync(binSrcDir)) {
|
|
@@ -205,17 +214,34 @@ try {
|
|
| 205 |
}
|
| 206 |
fs.mkdirSync(binDestDir, { recursive: true });
|
| 207 |
|
| 208 |
-
//
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
}
|
| 215 |
-
console.log(' ✓ Copied bin directory');
|
| 216 |
-
} catch (err) {
|
| 217 |
-
console.error(' ⚠ Warning: Failed to copy bin directory:', err.message);
|
| 218 |
-
console.log(' Please manually copy src/bin to dist/bin');
|
| 219 |
}
|
| 220 |
}
|
| 221 |
|
|
|
|
| 49 |
'node18-macos-arm64': 'antigravity-macos-arm64'
|
| 50 |
};
|
| 51 |
|
| 52 |
+
// 平台对应的 bin 文件映射
|
| 53 |
+
const binFileMap = {
|
| 54 |
+
'node18-win-x64': 'antigravity_requester_windows_amd64.exe',
|
| 55 |
+
'node18-linux-x64': 'antigravity_requester_linux_amd64',
|
| 56 |
+
'node18-linux-arm64': 'antigravity_requester_android_arm64', // ARM64 使用 Android 版本
|
| 57 |
+
'node18-macos-x64': 'antigravity_requester_linux_amd64', // macOS x64 暂用 Linux 版本
|
| 58 |
+
'node18-macos-arm64': 'antigravity_requester_android_arm64' // macOS ARM64 暂用 Android 版本
|
| 59 |
+
};
|
| 60 |
+
|
| 61 |
console.log('📦 Step 1: Bundling with esbuild...');
|
| 62 |
|
| 63 |
// 使用 esbuild 打包成 CommonJS
|
|
|
|
| 205 |
console.log(' ✓ Copied public directory');
|
| 206 |
}
|
| 207 |
|
| 208 |
+
// 复制 bin 目录(只复制对应平台的文件)
|
| 209 |
const binSrcDir = path.join(rootDir, 'src', 'bin');
|
| 210 |
const binDestDir = path.join(distDir, 'bin');
|
| 211 |
if (fs.existsSync(binSrcDir)) {
|
|
|
|
| 214 |
}
|
| 215 |
fs.mkdirSync(binDestDir, { recursive: true });
|
| 216 |
|
| 217 |
+
// 只复制对应平台的 bin 文件
|
| 218 |
+
const targetBinFiles = isMultiTarget
|
| 219 |
+
? [...new Set(targets.map(t => binFileMap[t]).filter(Boolean))] // 多目标:去重后的所有文件
|
| 220 |
+
: [binFileMap[resolvedTarget]].filter(Boolean); // 单目标:只复制一个文件
|
| 221 |
+
|
| 222 |
+
if (targetBinFiles.length > 0) {
|
| 223 |
+
for (const binFile of targetBinFiles) {
|
| 224 |
+
const srcPath = path.join(binSrcDir, binFile);
|
| 225 |
+
const destPath = path.join(binDestDir, binFile);
|
| 226 |
+
if (fs.existsSync(srcPath)) {
|
| 227 |
+
fs.copyFileSync(srcPath, destPath);
|
| 228 |
+
console.log(` ✓ Copied bin/${binFile}`);
|
| 229 |
+
} else {
|
| 230 |
+
console.warn(` ⚠ Warning: bin/${binFile} not found`);
|
| 231 |
+
}
|
| 232 |
+
}
|
| 233 |
+
} else {
|
| 234 |
+
// 如果没有映射,复制所有文件(兼容旧行为)
|
| 235 |
+
try {
|
| 236 |
+
if (process.platform === 'win32') {
|
| 237 |
+
execSync(`xcopy /E /I /Y "${binSrcDir}" "${binDestDir}"`, { stdio: 'pipe', shell: true });
|
| 238 |
+
} else {
|
| 239 |
+
execSync(`cp -r "${binSrcDir}"/* "${binDestDir}/"`, { stdio: 'pipe', shell: true });
|
| 240 |
+
}
|
| 241 |
+
console.log(' ✓ Copied all bin files');
|
| 242 |
+
} catch (err) {
|
| 243 |
+
console.error(' ⚠ Warning: Failed to copy bin directory:', err.message);
|
| 244 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 245 |
}
|
| 246 |
}
|
| 247 |
|