31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|||
|
|
import path from 'node:path';
|
||
|
|
import { fileURLToPath } from 'node:url';
|
||
|
|
import { createRequire } from 'node:module';
|
||
|
|
import { rebuild } from '@electron/rebuild';
|
||
|
|
|
||
|
|
const __filename = fileURLToPath(import.meta.url);
|
||
|
|
const __dirname = path.dirname(__filename);
|
||
|
|
|
||
|
|
const electronDir = path.resolve(__dirname, '..');
|
||
|
|
const repoRoot = path.resolve(electronDir, '..', '..');
|
||
|
|
const require = createRequire(import.meta.url);
|
||
|
|
|
||
|
|
const electronPkg = require('electron/package.json');
|
||
|
|
const electronVersion = electronPkg.version;
|
||
|
|
|
||
|
|
console.log(`[electron] rebuilding native modules against Electron ${electronVersion}...`);
|
||
|
|
|
||
|
|
// Rebuild against the hoisted root node_modules (bun workspace layout).
|
||
|
|
// force=true re-links regardless of cached state; prebuild-install lookup is
|
||
|
|
// bypassed by @electron/rebuild in favor of direct node-gyp builds.
|
||
|
|
await rebuild({
|
||
|
|
buildPath: repoRoot,
|
||
|
|
electronVersion,
|
||
|
|
force: true,
|
||
|
|
arch: process.env.ELECTRON_BUILDER_ARCH || process.arch,
|
||
|
|
onlyModules: ['better-sqlite3', 'node-pty', 'bun-pty'],
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log('[electron] native modules rebuilt successfully');
|