marktext/.electron-vue/postinstall.js
2022-01-30 18:38:10 +01:00

33 lines
1.6 KiB
JavaScript
Executable File

'use strict'
const fs = require('fs')
const path = require('path')
// WORKAROUND: Fix slow startup time on Windows due to blocking powershell call(s) in windows-release.
// Replace the problematic file with our "fixed" version.
const windowsReleasePath = path.resolve(__dirname, '../node_modules/windows-release')
if (fs.existsSync(windowsReleasePath)) {
const windowsReleaseJson = path.join(windowsReleasePath, 'package.json')
const packageJson = JSON.parse(fs.readFileSync(windowsReleaseJson, { encoding : 'utf-8' }))
const windowsReleaseMajor = Number(packageJson.version.match(/^(\d+)\./)[1])
if (windowsReleaseMajor >= 5) {
console.error('[ERROR] "windows-release" workaround failed because version is >=5.\n')
process.exit(1)
}
const srcPath = path.resolve(__dirname, '../resources/build/windows-release.js')
const destPath = path.join(windowsReleasePath, 'index.js')
fs.copyFileSync(srcPath, destPath)
}
// WORKAROUND: electron-builder downloads the wrong prebuilt architecture on macOS and the reason is unknown.
// For now, we rebuild all native libraries from source.
const keytarPath = path.resolve(__dirname, '../node_modules/keytar')
if (process.platform === 'darwin' && fs.existsSync(keytarPath)) {
const keytarPackageJsonPath = path.join(keytarPath, 'package.json')
let packageText = fs.readFileSync(keytarPackageJsonPath, { encoding : 'utf-8' })
packageText = packageText.replace(/"install": "prebuild-install \|\| npm run build",/i, '"install": "npm run build",')
fs.writeFileSync(keytarPackageJsonPath, packageText, { encoding : 'utf-8' })
}