今晚翻倒一起的音乐解锁相关项目源码于是进行启动测试发现原本项目作者仓库已经删除了随后用ai重构依赖无法下载问题总结与修复记录项目地址https://gitee.com/suifenglzy/unlock-music问题描述unlock-music项目v1.10.0在npm install时因以下两个依赖包已从 npm 官方仓库永久删除而安装失败依赖包版本用途jixun/qmc2-crypto0.0.6-R1QMC2 格式QQ 音乐新格式 .mgg/.mflac的 WASM 加解密unlock-music/joox-crypto0.0.1-R5JOOX Music 海外版格式解密两个包无论在registry.npmjs.org还是registry.npmmirror.com均返回 404无法安装导致项目完全无法运行解决思路参考同级目录下已能正常运行的音乐解锁dist/distv1.8.0已构建代码发现其完全不依赖这两个包而是使用纯 JS 实现的QmcDecoder处理 QMC 格式解密。因此核心策略是移除已删除的 npm 依赖用纯 JS 降级方案替代qmc_wasm.ts的 WASM 解密禁用 JOOX 解密无可用替代方案修复 TypeScript 编译错误修改文件清单文件修改内容package.json移除jixun/qmc2-crypto和unlock-music/joox-cryptosrc/decrypt/qmc_wasm.ts重写为始终返回失败自动触发qmc.ts中纯 JSQmcDecoderfallbacksrc/decrypt/joox.ts重写为抛出友好错误提示移除所有已删除包的 importsrc/decrypt/index.ts修正JooxDecrypt()调用移除传入的参数src/shims-element-ui.d.ts新增解决element-ui缺少类型声明的 TS 编译错误package-lock.json删除旧 lockfile重新生成以排除已删除包的记录README.md补充安装注意事项和已知问题说明具体修改详情1.package.json— 移除依赖dependencies: { babel/preset-typescript: ^7.16.5, - jixun/qmc2-crypto: ^0.0.6-R1, - unlock-music/joox-crypto: ^0.0.1-R5, base64-js: ^1.5.1, ... }2.src/decrypt/qmc_wasm.ts— 改为 fallback原文件导入并调用jixun/qmc2-crypto的 WASM 模块进行 QMC2 检测和解密约111行修改后export async function DecryptQMCWasm(): PromiseQMC2DecryptionResult { return { success: false, data: new Uint8Array(), songId: 0, error: QMC2 WASM 解密不可用jixun/qmc2-crypto 已删除将自动使用 JS 解码器, }; }由于qmc.ts中已有完整的 fallback 逻辑v2Decrypted.success为 false 时自动使用QmcDecoder此改动无需修改qmc.ts主体逻辑3.src/decrypt/joox.ts— 禁用 JOOXJOOX 解密没有可用的纯 JS 替代方案改为抛出明确错误export async function Decrypt(): PromiseDecryptResult { throw new Error(unlock-music/joox-crypto 包已从 npm 删除JOOX 解密功能暂时不可用。); }4.src/decrypt/index.ts— 修正调用case ofl_en: - rt_data await JooxDecrypt(file.raw, raw.name, raw.ext); rt_data await JooxDecrypt(); break;5.src/shims-element-ui.d.ts— 新增类型声明element-ui的types/element-ui包不存在创建 shim 文件解决 TS 编译错误 TS7016declare module element-ui;6. 删除package-lock.json旧 lockfile 中仍记录了已删除的两个包删除后重新生成干净的 lockfile功能影响功能修复前修复后QMC 旧格式.qmc0/.qmc2/.qmc3✅✅QMC 新格式.mgg/.mflacWASM 加速✅⚠️ 降级为 JS 解码稍慢但仍可用网易云音乐 .ncm✅✅虾米音乐 .xm✅✅酷我音乐 .kwm✅✅酷狗音乐 .kgm/.vpr✅✅JOOX Music .ofl_en✅❌ 已不可用无替代方案安装与运行# 使用 npmmirror 镜像源推荐国内网络更快 npm config set registry https://registry.npmmirror.com npm install --ignore-scripts ​ # 开发运行 npm run serve ​ # 构建生产版本 npm run build时间线问题发现npm install时报E404两个包均不可用对比分析参考音乐解锁dist的 dist 构建产物确认纯 JS 方案可行代码修改移除依赖 重写 3 个源文件 新增 1 个类型声明文件验证npm install✅ npm run build✅