From 21c83143a0cbd4bddbf3cefb4f80d09d37337b00 Mon Sep 17 00:00:00 2001 From: Tw93 Date: Tue, 26 Aug 2025 21:09:46 +0800 Subject: [PATCH] :bug: Fix packaging issues under Windows --- bin/builders/BaseBuilder.ts | 9 ++++++--- bin/builders/WinBuilder.ts | 10 +++++----- dist/cli.js | 18 ++++++++++++------ package.json | 6 +++--- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/bin/builders/BaseBuilder.ts b/bin/builders/BaseBuilder.ts index c649f67..9a20f92 100644 --- a/bin/builders/BaseBuilder.ts +++ b/bin/builders/BaseBuilder.ts @@ -255,7 +255,7 @@ export default abstract class BaseBuilder { ? `${packageManager} run build:debug` : `${packageManager} run build`; - const argSeparator = packageManager === 'npm' ? ' --' : ''; + const argSeparator = ' --'; // Both npm and pnpm need -- to pass args to scripts let fullCommand = `${baseCommand}${argSeparator} -c "${configPath}"`; if (target) { @@ -283,6 +283,10 @@ export default abstract class BaseBuilder { } protected getBuildCommand(packageManager: string = 'pnpm'): string { + const baseCommand = this.options.debug + ? `${packageManager} run build:debug` + : `${packageManager} run build`; + // Use temporary config directory to avoid modifying source files const configPath = path.join( npmDirectory, @@ -290,8 +294,7 @@ export default abstract class BaseBuilder { '.pake', 'tauri.conf.json', ); - - let fullCommand = this.buildBaseCommand(packageManager, configPath); + let fullCommand = `${baseCommand} -- -c "${configPath}"`; // For macOS, use app bundles by default unless DMG is explicitly requested if (IS_MAC && this.options.targets === 'app') { diff --git a/bin/builders/WinBuilder.ts b/bin/builders/WinBuilder.ts index a7c0eaa..0f6fda9 100644 --- a/bin/builders/WinBuilder.ts +++ b/bin/builders/WinBuilder.ts @@ -26,6 +26,10 @@ export default class WinBuilder extends BaseBuilder { } protected getBuildCommand(packageManager: string = 'pnpm'): string { + const baseCommand = this.options.debug + ? `${packageManager} run build:debug` + : `${packageManager} run build`; + const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); const buildTarget = this.getTauriTarget(this.buildArch, 'win32'); @@ -35,11 +39,7 @@ export default class WinBuilder extends BaseBuilder { ); } - let fullCommand = this.buildBaseCommand( - packageManager, - configPath, - buildTarget, - ); + let fullCommand = `${baseCommand} -- -c "${configPath}" --target ${buildTarget}`; // Add features const features = this.getBuildFeatures(); diff --git a/dist/cli.js b/dist/cli.js index 6e54294..5601fbf 100755 --- a/dist/cli.js +++ b/dist/cli.js @@ -54,9 +54,9 @@ var files = [ var scripts = { start: "pnpm run dev", dev: "pnpm run tauri dev", - build: "tauri build", - "build:debug": "tauri build --debug", - "build:mac": "tauri build --target universal-apple-darwin", + build: "pnpm run tauri build --", + "build:debug": "pnpm run tauri build -- --debug", + "build:mac": "pnpm run tauri build -- --target universal-apple-darwin", "build:config": "chmod +x scripts/configure-tauri.mjs && node scripts/configure-tauri.mjs", analyze: "cd src-tauri && cargo bloat --release --crates", tauri: "tauri", @@ -742,7 +742,7 @@ class BaseBuilder { const baseCommand = this.options.debug ? `${packageManager} run build:debug` : `${packageManager} run build`; - const argSeparator = packageManager === 'npm' ? ' --' : ''; + const argSeparator = ' --'; // Both npm and pnpm need -- to pass args to scripts let fullCommand = `${baseCommand}${argSeparator} -c "${configPath}"`; if (target) { fullCommand += ` --target ${target}`; @@ -764,9 +764,12 @@ class BaseBuilder { return features; } getBuildCommand(packageManager = 'pnpm') { + const baseCommand = this.options.debug + ? `${packageManager} run build:debug` + : `${packageManager} run build`; // Use temporary config directory to avoid modifying source files const configPath = path.join(npmDirectory, 'src-tauri', '.pake', 'tauri.conf.json'); - let fullCommand = this.buildBaseCommand(packageManager, configPath); + let fullCommand = `${baseCommand} -- -c "${configPath}"`; // For macOS, use app bundles by default unless DMG is explicitly requested if (IS_MAC && this.options.targets === 'app') { fullCommand += ' --bundles app'; @@ -921,12 +924,15 @@ class WinBuilder extends BaseBuilder { return `${name}_${tauriConfig.version}_${targetArch}_${language}`; } getBuildCommand(packageManager = 'pnpm') { + const baseCommand = this.options.debug + ? `${packageManager} run build:debug` + : `${packageManager} run build`; const configPath = path.join('src-tauri', '.pake', 'tauri.conf.json'); const buildTarget = this.getTauriTarget(this.buildArch, 'win32'); if (!buildTarget) { throw new Error(`Unsupported architecture: ${this.buildArch} for Windows`); } - let fullCommand = this.buildBaseCommand(packageManager, configPath, buildTarget); + let fullCommand = `${baseCommand} -- -c "${configPath}" --target ${buildTarget}`; // Add features const features = this.getBuildFeatures(); if (features.length > 0) { diff --git a/package.json b/package.json index b2346fb..3dc5ea6 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "scripts": { "start": "pnpm run dev", "dev": "pnpm run tauri dev", - "build": "tauri build", - "build:debug": "tauri build --debug", - "build:mac": "tauri build --target universal-apple-darwin", + "build": "pnpm run tauri build --", + "build:debug": "pnpm run tauri build -- --debug", + "build:mac": "pnpm run tauri build -- --target universal-apple-darwin", "build:config": "chmod +x scripts/configure-tauri.mjs && node scripts/configure-tauri.mjs", "analyze": "cd src-tauri && cargo bloat --release --crates", "tauri": "tauri",