Skip to content

Commit ab4fe39

Browse files
fix(desktop): clear electron node mode for dev launch
1 parent df7d18a commit ab4fe39

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
},
1111
"scripts": {
1212
"postinstall": "node scripts/install-sqlite-bindings.cjs",
13-
"dev": "electron-vite dev",
13+
"dev": "node scripts/dev.cjs",
1414
"build": "electron-vite build && electron-builder",
1515
"build:dir": "electron-vite build && electron-builder --dir",
1616
"release": "electron-vite build && electron-builder --publish never",

apps/desktop/scripts/dev.cjs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/usr/bin/env node
2+
const { spawn } = require('node:child_process');
3+
const { dirname, join } = require('node:path');
4+
5+
const electronVitePackageJson = require.resolve('electron-vite/package.json');
6+
const electronViteBin = join(dirname(electronVitePackageJson), 'bin', 'electron-vite.js');
7+
const env = { ...process.env };
8+
9+
// Some hosts, including automation agents, run Electron tooling with this set
10+
// so Electron behaves like Node. The desktop dev app must launch real Electron.
11+
delete env.ELECTRON_RUN_AS_NODE;
12+
13+
const child = spawn(process.execPath, [electronViteBin, 'dev', ...process.argv.slice(2)], {
14+
env,
15+
stdio: 'inherit',
16+
windowsHide: false,
17+
});
18+
19+
child.on('exit', (code, signal) => {
20+
if (signal) {
21+
process.kill(process.pid, signal);
22+
return;
23+
}
24+
process.exit(code ?? 0);
25+
});
26+
27+
child.on('error', (error) => {
28+
console.error(error);
29+
process.exit(1);
30+
});

0 commit comments

Comments
 (0)