From 8a83281d1ba66017ac947d0368b1825760d4d42f Mon Sep 17 00:00:00 2001 From: alger Date: Sun, 22 Mar 2026 16:47:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20NeteaseCloudMusicAp?= =?UTF-8?q?i=20anonymous=5Ftoken=20=E6=96=87=E4=BB=B6=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=AF=BC=E8=87=B4=E5=90=AF=E5=8A=A8=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 NeteaseCloudMusicApi/server 从静态 import 改为动态 require(), 确保 anonymous_token 文件在模块加载前创建 --- src/main/server.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/server.ts b/src/main/server.ts index 99fc2b2..21d10b4 100644 --- a/src/main/server.ts +++ b/src/main/server.ts @@ -1,17 +1,19 @@ import { ipcMain } from 'electron'; import Store from 'electron-store'; import fs from 'fs'; -import server from 'NeteaseCloudMusicApi/server'; import os from 'os'; import path from 'path'; import { type Platform, unblockMusic } from './unblockMusic'; -const store = new Store(); +// 必须在 import NeteaseCloudMusicApi 之前创建 anonymous_token 文件 +// 否则模块加载时 readFileSync 会因文件不存在而崩溃 if (!fs.existsSync(path.resolve(os.tmpdir(), 'anonymous_token'))) { fs.writeFileSync(path.resolve(os.tmpdir(), 'anonymous_token'), '', 'utf-8'); } +const store = new Store(); + // 设置音乐解析的处理程序 ipcMain.handle('unblock-music', async (_event, id, songData, enabledSources) => { try { @@ -66,6 +68,7 @@ async function startMusicApi(): Promise { } try { + const server = require('NeteaseCloudMusicApi/server'); await server.serveNcmApi({ port, // 安全默认值:仅监听本机回环地址,避免对局域网暴露