fix: 修复 NeteaseCloudMusicApi anonymous_token 文件不存在导致启动崩溃

将 NeteaseCloudMusicApi/server 从静态 import 改为动态 require(),
确保 anonymous_token 文件在模块加载前创建
This commit is contained in:
alger
2026-03-22 16:47:15 +08:00
parent a3f91c45f0
commit 8a83281d1b

View File

@@ -1,17 +1,19 @@
import { ipcMain } from 'electron'; import { ipcMain } from 'electron';
import Store from 'electron-store'; import Store from 'electron-store';
import fs from 'fs'; import fs from 'fs';
import server from 'NeteaseCloudMusicApi/server';
import os from 'os'; import os from 'os';
import path from 'path'; import path from 'path';
import { type Platform, unblockMusic } from './unblockMusic'; import { type Platform, unblockMusic } from './unblockMusic';
const store = new Store(); // 必须在 import NeteaseCloudMusicApi 之前创建 anonymous_token 文件
// 否则模块加载时 readFileSync 会因文件不存在而崩溃
if (!fs.existsSync(path.resolve(os.tmpdir(), 'anonymous_token'))) { if (!fs.existsSync(path.resolve(os.tmpdir(), 'anonymous_token'))) {
fs.writeFileSync(path.resolve(os.tmpdir(), 'anonymous_token'), '', 'utf-8'); fs.writeFileSync(path.resolve(os.tmpdir(), 'anonymous_token'), '', 'utf-8');
} }
const store = new Store();
// 设置音乐解析的处理程序 // 设置音乐解析的处理程序
ipcMain.handle('unblock-music', async (_event, id, songData, enabledSources) => { ipcMain.handle('unblock-music', async (_event, id, songData, enabledSources) => {
try { try {
@@ -66,6 +68,7 @@ async function startMusicApi(): Promise<void> {
} }
try { try {
const server = require('NeteaseCloudMusicApi/server');
await server.serveNcmApi({ await server.serveNcmApi({
port, port,
// 安全默认值:仅监听本机回环地址,避免对局域网暴露 // 安全默认值:仅监听本机回环地址,避免对局域网暴露