unlock-music项目安装依赖及启动相关报错问题及解决

发布时间:2026/9/12 4:06:20

unlock-music项目安装依赖及启动相关报错问题及解决 今晚翻倒一起的音乐解锁相关项目源码于是进行启动测试发现原本项目作者仓库已经删除了随后用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✅
延伸阅读

更多相关文章

2026/9/8 6:03:35

2026年AI写小说工具横评实测:5款主流方案哪款适合你?

2026年AI写小说工具市场已分化为三个路线——窗口扩容、提示词工程、记忆系统。本文从长篇连贯性、伏笔管理、角色一致性、适合人群、性价比五个维度,实测横评蛙趣拼文、Sudowrite、Kimi、ChatGPT、笔灵AI五款工具,帮助不同需求的作者找到适合自己的方案…

2026/9/12 4:04:44

PyTorch激活层实战指南:从源码、数值稳定性到工业部署避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

Java封装机制详解:从基础到高级实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

SpringBoot舞蹈室管理系统开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 4:04:44

基于YOLO与多模态大模型的电子元器件目标检测系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 3:59:43

创新创业大赛方案设计的3个核心原则与实战技巧

1. 创新创业大赛方案设计核心思路参加创新创业大赛不同于普通的商业计划比赛,评委更关注项目的创新性、可行性和成长潜力。我在担任多次创业大赛评委和指导参赛团队的过程中,总结出三个核心设计原则:首先是问题导向。真正优秀的创业项目都源于…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码