diff --git a/client/electron/build.action.mjs b/client/electron/build.action.mjs index 885b05c70e..a95ee721b6 100644 --- a/client/electron/build.action.mjs +++ b/client/electron/build.action.mjs @@ -23,7 +23,7 @@ import {getRootDir} from '../../src/build/get_root_dir.mjs'; import {runAction} from '../../src/build/run_action.mjs'; import {getBuildParameters} from '../src/build/get_build_parameters.mjs'; -const ELECTRON_BUILD_DIR = 'output'; +const ELECTRON_BUILD_DIR = 'output/client/electron'; const ELECTRON_PLATFORMS = ['linux', 'windows']; export async function main(...parameters) { @@ -53,8 +53,6 @@ export async function main(...parameters) { await runAction('client/src/tun2socks/build', ...parameters); await runAction('client/electron/build_main', ...parameters); - await fs.mkdir(path.join(getRootDir(), ELECTRON_BUILD_DIR, 'client', 'electron'), {recursive: true}); - const electronConfig = JSON.parse( await fs.readFile(path.resolve(getRootDir(), 'client', 'electron', 'electron-builder.json')) ); @@ -65,6 +63,9 @@ export async function main(...parameters) { targets: Platform[platform.toLocaleUpperCase()].createTarget(), config: { ...electronConfig, + directories: { + output: path.resolve(getRootDir(), ELECTRON_BUILD_DIR, platform), + }, publish: autoUpdateUrl ? { provider: autoUpdateProvider, diff --git a/client/electron/build_main.action.mjs b/client/electron/build_main.action.mjs index 49285f8e57..51ca6ece02 100644 --- a/client/electron/build_main.action.mjs +++ b/client/electron/build_main.action.mjs @@ -23,7 +23,7 @@ import {getBuildParameters} from '../src/build/get_build_parameters.mjs'; import {getWebpackBuildMode} from '../src/build/get_webpack_build_mode.mjs'; import {runWebpack} from '../src/build/run_webpack.mjs'; -const ELECTRON_BUILD_DIR = 'output'; +const ELECTRON_BUILD_DIR = 'output/client/electron'; const ELECTRON_PLATFORMS = ['linux', 'windows']; export async function main(...parameters) { @@ -41,7 +41,11 @@ export async function main(...parameters) { // TODO(daniellacosse): separate building the preload script out into its own separate step await runWebpack( - electronMainWebpackConfigs({sentryDsn, appVersion: versionName}).map(config => ({ + electronMainWebpackConfigs({ + sentryDsn, + appVersion: versionName, + output: path.resolve(getRootDir(), ELECTRON_BUILD_DIR, 'js'), + }).map(config => ({ ...config, mode: getWebpackBuildMode(buildMode), })) @@ -58,7 +62,8 @@ export async function main(...parameters) { windowsEnvironment += `\n!define SENTRY_URL ""`; } - await fs.writeFile(path.resolve(getRootDir(), ELECTRON_BUILD_DIR, 'client', 'electron', 'env.nsh'), windowsEnvironment); + await fs.mkdir(path.resolve(getRootDir(), ELECTRON_BUILD_DIR, platform), {recursive: true}); + await fs.writeFile(path.resolve(getRootDir(), ELECTRON_BUILD_DIR, platform, 'env.nsh'), windowsEnvironment); } } diff --git a/client/electron/electron-builder.json b/client/electron/electron-builder.json index bc0c7575e4..48ab575213 100644 --- a/client/electron/electron-builder.json +++ b/client/electron/electron-builder.json @@ -1,25 +1,20 @@ { "artifactName": "Outline-Client.${ext}", "asarUnpack": [ "client" ], - "directories": { - "buildResources": "output/client/electron", - "output": "output/client/electron/build" - }, "extraMetadata": { - "main": "output/client/electron/index.js" + "main": "output/client/electron/js/index.js" }, "files": [ "client/www", "client/resources/tray", - "output/client/electron", - "!output/client/electron/build" + "output/client/electron/js" ], "linux": { "category": "Network", "files": [ "client/electron/linux_proxy_controller/dist", "client/electron/icons/png", - "client/output/build/linux" + "output/client/electron/linux" ], "icon": "client/electron/icons/png", "target": { @@ -35,7 +30,7 @@ }, "win": { "files": [ - "client/output/build/windows" + "output/client/electron/windows" ], "icon": "client/electron/icons/win/icon.ico", "sign": "client/electron/windows/electron_builder_signing_plugin.cjs", diff --git a/client/electron/webpack_electron_main.mjs b/client/electron/webpack_electron_main.mjs index 5eacdd83c1..55970b108a 100755 --- a/client/electron/webpack_electron_main.mjs +++ b/client/electron/webpack_electron_main.mjs @@ -21,7 +21,7 @@ import webpack from 'webpack'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -export default ({sentryDsn, appVersion}) => [ +export default ({sentryDsn, appVersion, output}) => [ { entry: './client/electron/index.ts', target: 'electron-main', @@ -50,7 +50,7 @@ export default ({sentryDsn, appVersion}) => [ ], output: { filename: 'index.js', - path: path.resolve(__dirname, '..', '..', 'output', 'client', 'electron'), + path: output }, }, { @@ -71,7 +71,7 @@ export default ({sentryDsn, appVersion}) => [ }, output: { filename: 'preload.js', - path: path.resolve(__dirname, '..', '..', 'output', 'client', 'electron'), + path: path.resolve(__dirname, '..', '..', 'output', 'client', 'electron', 'js'), }, }, ];