YesPlayMusic/scripts/build.sqlite3.mjs
qier222 70d1de0e0f
fix: bugs
fix: bugs
2022-04-09 01:13:15 +08:00

59 lines
1.6 KiB
JavaScript

import { rebuild } from 'electron-rebuild'
import fs from 'fs'
import minimist from 'minimist'
import pc from 'picocolors'
const pkg = JSON.parse(await fs.readFileSync('./package.json', 'utf8'))
const electronVersion = pkg.devDependencies.electron.replaceAll('^', '')
const argv = minimist(process.argv.slice(2))
const isWin = process.platform === 'win32'
const isMac = process.platform === 'darwin'
const isLinux = process.platform === 'linux'
const build = async arch => {
console.log(pc.blue(`Building for ${arch}...`))
await rebuild({
buildPath: process.cwd(),
electronVersion,
arch: arch,
})
.then(() => {
console.info('Rebuild succeeded')
if (!fs.existsSync('./dist/main')) {
fs.mkdirSync('./dist/main', { recursive: true })
}
fs.copyFileSync(
'./node_modules/better-sqlite3/build/Release/better_sqlite3.node',
`./dist/main/better_sqlite3_${arch}.node`
)
if (isWin) {
fs.copyFileSync(
'./node_modules/better-sqlite3/build/Release/sqlite3.dll',
'./dist/main/sqlite3.dll'
)
}
})
.catch(e => {
console.error(pc.red('Rebuild failed!'))
console.error(pc.red(e))
})
}
const main = async () => {
if (argv.x64 || argv.arm64 || argv.arm) {
if (argv.x64) await build('x64')
if (argv.arm64) await build('arm64')
if (argv.arm) await build('arm')
} else {
if (isWin || isMac) {
await build('x64')
await build('arm64')
} else if (isLinux) {
await build('x64')
await build('arm64')
await build('arm')
}
}
}
main()