mirror of
https://github.com/qier222/YesPlayMusic.git
synced 2025-02-27 20:28:40 +08:00
chore: 更新依赖和build.sqlite3.js
This commit is contained in:
parent
a95524ff34
commit
766e866497
9
.github/workflows/build.yaml
vendored
9
.github/workflows/build.yaml
vendored
@ -32,13 +32,8 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile false
|
||||
|
||||
- name: Build sqlite3 binaries (macOS, Windows)
|
||||
if: runner.os == 'macOS'
|
||||
run: node ./scripts/build.sqlite3.mjs --arm64 --x64
|
||||
|
||||
- name: Build sqlite3 binaries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: node ./scripts/build.sqlite3.mjs --arm64 --arm --x64
|
||||
- name: Build sqlite3 binaries
|
||||
run: node ./scripts/build.sqlite3.js
|
||||
|
||||
- name: Install RPM & Pacman (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
|
44
package.json
44
package.json
@ -10,7 +10,7 @@
|
||||
"repository": "github:qier222/YesPlayMusic",
|
||||
"main": "dist/main/index.js",
|
||||
"scripts": {
|
||||
"install:sqlite3": "node scripts/build.sqlite3.mjs",
|
||||
"install:sqlite3": "node scripts/build.sqlite3.js",
|
||||
"dev": "concurrently -n=vite,main -c=#646cff,#74b1be \"npm run dev:renderer\" \"node scripts/build.main.mjs --watch\"",
|
||||
"dev:renderer": "vite dev",
|
||||
"build:main": "node scripts/build.main.mjs",
|
||||
@ -30,10 +30,10 @@
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/node": "^6.19.3",
|
||||
"@sentry/tracing": "^6.19.3",
|
||||
"NeteaseCloudMusicApi": "^4.5.10",
|
||||
"better-sqlite3": "7.5.0",
|
||||
"@sentry/node": "^6.19.6",
|
||||
"@sentry/tracing": "^6.19.6",
|
||||
"NeteaseCloudMusicApi": "^4.5.11",
|
||||
"better-sqlite3": "7.5.1",
|
||||
"change-case": "^4.1.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"electron-log": "^4.4.6",
|
||||
@ -42,7 +42,7 @@
|
||||
"fast-folder-size": "^1.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sentry/react": "^6.19.3",
|
||||
"@sentry/react": "^6.19.6",
|
||||
"@types/better-sqlite3": "^7.5.0",
|
||||
"@types/cookie-parser": "^1.4.2",
|
||||
"@types/express": "^4.17.13",
|
||||
@ -52,41 +52,42 @@
|
||||
"@types/lodash-es": "^4.17.6",
|
||||
"@types/md5": "^2.3.2",
|
||||
"@types/qrcode": "^1.4.2",
|
||||
"@types/react": "^17.0.43",
|
||||
"@types/react-dom": "^17.0.14",
|
||||
"@typescript-eslint/eslint-plugin": "^5.17.0",
|
||||
"@typescript-eslint/parser": "^5.17.0",
|
||||
"@types/react": "^18.0.1",
|
||||
"@types/react-dom": "^18.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.18.0",
|
||||
"@typescript-eslint/parser": "^5.18.0",
|
||||
"@vitejs/plugin-react": "^1.3.0",
|
||||
"autoprefixer": "^10.4.4",
|
||||
"axios": "^0.26.1",
|
||||
"classnames": "^2.3.1",
|
||||
"color.js": "^1.2.0",
|
||||
"colord": "^2.9.2",
|
||||
"concurrently": "^7.0.0",
|
||||
"concurrently": "^7.1.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"csstype": "^3.0.11",
|
||||
"dayjs": "^1.11.0",
|
||||
"dotenv": "^16.0.0",
|
||||
"electron": "^17.3.1",
|
||||
"electron-builder": "^22.14.13",
|
||||
"electron": "^18.0.3",
|
||||
"electron-builder": "^23.0.3",
|
||||
"electron-devtools-installer": "^3.2.0",
|
||||
"electron-rebuild": "^3.2.7",
|
||||
"esbuild": "^0.14.29",
|
||||
"eslint": "^8.12.0",
|
||||
"electron-releases": "^3.984.0",
|
||||
"esbuild": "^0.14.34",
|
||||
"eslint": "^8.13.0",
|
||||
"eslint-plugin-react": "^7.29.4",
|
||||
"eslint-plugin-react-hooks": "^4.4.0",
|
||||
"express-fileupload": "^1.3.1",
|
||||
"framer-motion": "^6.2.8",
|
||||
"framer-motion": "^6.2.9",
|
||||
"howler": "^2.2.3",
|
||||
"js-cookie": "^3.0.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"md5": "^2.3.0",
|
||||
"minimist": "^1.2.6",
|
||||
"music-metadata": "^7.12.2",
|
||||
"music-metadata": "^7.12.3",
|
||||
"ora": "^6.1.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"postcss": "^8.4.12",
|
||||
"prettier": "2.5.1",
|
||||
"prettier": "2.6.2",
|
||||
"prettier-plugin-tailwindcss": "^0.1.8",
|
||||
"qrcode": "^1.5.0",
|
||||
"react": "^18.0.0",
|
||||
@ -97,14 +98,13 @@
|
||||
"react-use": "^17.3.2",
|
||||
"rollup": "^2.70.1",
|
||||
"rollup-plugin-visualizer": "^5.6.0",
|
||||
"sass": "^1.49.10",
|
||||
"sass": "^1.50.0",
|
||||
"tailwindcss": "^3.0.23",
|
||||
"typescript": "^4.6.3",
|
||||
"unplugin-auto-import": "^0.6.9",
|
||||
"valtio": "^1.5.0",
|
||||
"unplugin-auto-import": "^0.7.0",
|
||||
"valtio": "^1.5.2",
|
||||
"valtio-persist": "^1.0.2",
|
||||
"vite": "^2.9.1",
|
||||
"vite-plugin-resolve": "^1.8.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"wait-on": "^6.0.1"
|
||||
}
|
||||
|
625
pnpm-lock.yaml
generated
625
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
133
scripts/build.sqlite3.js
Normal file
133
scripts/build.sqlite3.js
Normal file
@ -0,0 +1,133 @@
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const { rebuild } = require('electron-rebuild')
|
||||
const fs = require('fs')
|
||||
const minimist = require('minimist')
|
||||
const pc = require('picocolors')
|
||||
const releases = require('electron-releases')
|
||||
const pkg = require('../package.json')
|
||||
const axios = require('axios')
|
||||
const { execSync } = require('child_process')
|
||||
|
||||
const electronVersion = pkg.devDependencies.electron.replaceAll('^', '')
|
||||
const betterSqlite3Version = pkg.dependencies['better-sqlite3'].replaceAll(
|
||||
'^',
|
||||
''
|
||||
)
|
||||
const electronModuleVersion = releases.find(r =>
|
||||
r.version.includes(electronVersion)
|
||||
)?.deps?.modules
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const isWin = process.platform === 'win32'
|
||||
const isMac = process.platform === 'darwin'
|
||||
const isLinux = process.platform === 'linux'
|
||||
|
||||
if (!fs.existsSync('./dist/main')) {
|
||||
fs.mkdirSync('./dist/main', {
|
||||
recursive: true,
|
||||
})
|
||||
}
|
||||
|
||||
const download = async arch => {
|
||||
console.log(pc.cyan(`Downloading for ${arch}...`))
|
||||
if (!electronModuleVersion) {
|
||||
console.log(pc.red('No electron module version found! Skip download.'))
|
||||
return false
|
||||
}
|
||||
const dir = './tmp/better-sqlite3'
|
||||
const fileName = `better-sqlite3-v${betterSqlite3Version}-electron-v${electronModuleVersion}-${process.platform}-${arch}`
|
||||
const zipFileName = `${fileName}.tar.gz`
|
||||
const url = `https://github.com/JoshuaWise/better-sqlite3/releases/download/v${betterSqlite3Version}/${zipFileName}`
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir, {
|
||||
recursive: true,
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
await axios({
|
||||
method: 'get',
|
||||
url,
|
||||
responseType: 'stream',
|
||||
}).then(response => {
|
||||
response.data.pipe(fs.createWriteStream(`${dir}/${zipFileName}`))
|
||||
return true
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(pc.red('Download failed! Skip download.'))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
execSync(`tar -xvzf ${dir}/${zipFileName} -C ${dir}`)
|
||||
} catch (e) {
|
||||
console.log(pc.red('Extract failed! Skip extract.'))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
fs.copyFileSync(
|
||||
`${dir}/build/Release/better_sqlite3.node`,
|
||||
`./dist/main/better_sqlite3_${arch}.node`
|
||||
)
|
||||
} catch (e) {
|
||||
console.log(pc.red('Copy failed! Skip copy.', e))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
fs.rmdirSync(`${dir}/build`, { recursive: true, force: true })
|
||||
} catch (e) {
|
||||
console.log(pc.red('Delete failed! Skip delete.'))
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
const build = async arch => {
|
||||
const downloaded = await download(arch)
|
||||
if (downloaded) return
|
||||
|
||||
console.log(pc.cyan(`Building for ${arch}...`))
|
||||
await rebuild({
|
||||
buildPath: process.cwd(),
|
||||
electronVersion,
|
||||
arch: arch,
|
||||
})
|
||||
.then(() => {
|
||||
console.info('Build succeeded')
|
||||
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('Build 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()
|
@ -1,59 +0,0 @@
|
||||
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()
|
Loading…
x
Reference in New Issue
Block a user