43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
/**
|
|
* post install script
|
|
*/
|
|
const { cp, exec, rm } = require('shelljs')
|
|
const { existsSync } = require('fs')
|
|
const { resolve } = require('path')
|
|
const prePushPath = resolve(__dirname, '../../.git/hooks/pre-push')
|
|
const prePushPathFrom = resolve(__dirname, 'pre-push')
|
|
const os = require('os')
|
|
|
|
const platform = os.platform()
|
|
const isWin = platform === 'win32'
|
|
// const rest = ''
|
|
if (isWin && process.env.CI) {
|
|
exec('npm cache clear -f')
|
|
exec('npm uninstall node-gyp -g')
|
|
exec('npm install node-gyp -g')
|
|
}
|
|
|
|
// Remove optional native module that may fail to rebuild
|
|
try {
|
|
// Check multiple potential locations for cpu-features
|
|
const cpuFeaturesPaths = [
|
|
resolve(__dirname, '../../node_modules/cpu-features'),
|
|
resolve(__dirname, '../../work/app/node_modules/cpu-features')
|
|
]
|
|
|
|
cpuFeaturesPaths.forEach(cpuFeaturesPath => {
|
|
if (existsSync(cpuFeaturesPath)) {
|
|
rm('-rf', cpuFeaturesPath)
|
|
console.log('Removed optional module:', cpuFeaturesPath)
|
|
}
|
|
})
|
|
} catch (e) {
|
|
console.warn('Failed to remove cpu-features:', e?.message || e)
|
|
}
|
|
|
|
exec(resolve('./node_modules/.bin/electron-rebuild'))
|
|
|
|
if (!existsSync(prePushPath)) {
|
|
cp(prePushPathFrom, prePushPath)
|
|
}
|