# 编程猫 CoCo 源代码计划 **Repository Path**: glacier-studio/CoCo-Source-Code-Plan ## Basic Information - **Project Name**: 编程猫 CoCo 源代码计划 - **Description**: 还原编程猫 CoCo 编辑器、CoCo Player 等的代码。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-22 - **Last Updated**: 2025-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 编程猫 CoCo 源代码计划 ![QQ-编程猫非官方技术交流群(708553284)](https://img.shields.io/badge/QQ-编程猫非官方技术交流群(708553284)-blue?style=flat-square) 还原编程猫 CoCo 编辑器、CoCo Player 等的代码。 > [!IMPORTANT] > > 停更通知: > > 该项目唯一的核心维护者 SLIGHTNING 由于学业繁忙,将无法维护该项目。预计将于 2026 年 6 月 17 日后恢复更新。 ## 一、介绍 ### 1.是什么 CoCo 源代码计划是一个从 CoCo 的分发文件中还原 CoCo 代码的项目。该项目使用 Babel、ESLint 等技术来辅助这个过程。同时保证得到的代码可以打包运行。 ### 2.产生背景 CoCo 由于编程猫不知道什么原因的问题,CoCo 长久不进行有效更新,然而 CoCo 中还有许多 BUG,功能也尚不完善,更过分的是,每次 CoCo 更新都会添加一些限制。面对编程猫这种情况,社区大佬尝试通过修改 CoCo 代码的方式为 CoCo 提供更好的使用体验(如:CoCoPro、青柠绕审核),然而,这些项目大多通过 Hook 全局 API 和修改分发文件的方式来改进 CoCo,这样存在许多问题(如:逆向难度高、不方便进行版本管理)。 这样进行少量修改还尚且可以应对,但是 SLIGHTNING 想要深度修改 CoCo,出于此,还原 CoCo 代码就显得至关重要。 ### 3.不是什么 CoCo 源代码计划并不是也不能完全还原 CoCo 的源代码,该项目最多得到的只是在功能上与 CoCo 等价的适用于人类阅读的代码。 ### 4.那些项目在使用 CoCo 源代码计划 - [CoCo Next](https://gitee.com/oldsquaw/CoCo-Next):CoCo Next 基于 CoCo 源代码计划二次开发 CoCo。 ## 二、进度 | 模块 | 抓取 | 拆包 | 语法升级 | JSX 反向转换 | 反压缩 | | :-: | :-: | :-: | :-: | :-: | :-: | | CoCo Home | ✅ | 75% | ❌ | ❌ | / | | CoCo Editor | ✅ | 75% | ❌ | ❌ | 0% | | CoCo Editor Player | ✅ | 75% | ❌ | ❌ | ❌ | | CoCo Editor ServiceWorker | ✅ | ✅ | ❌ | / | ❌ | | CoCo Player | ✅ | 75% | ❌ | ❌ | ❌ | | CoCo About | ✅ | 75% | ❌ | ❌ | ❌ | 过程说明: - 抓取:把公开文件的代码放到仓库中; - 拆包:把打包过的代码拆成模块; - 语法升级:将降级后的语法转换成降级前的; - JSX 反向转换:将转换后的 `React.createElement` 调用转换为 JSX; - 反压缩:给模块名称、代码中的量的名称等重新设置一个有意义的名称。 符号说明: - `✅`:全部完成; - `❌`:一点没动; - `/`:不需要; - `xx%`:完成比例(估计值,可能不准确)。 ## 三、构建和运行 ### 1.准备 #### (1)克隆仓库到本地 ```sh git clone https://github.com/glacier-studio/CoCo-Source-Code-Plan.git # 或从 Gitee 克隆: # git clone https://gitee.com/glacier-studio/CoCo-Source-Code-Plan.git ``` #### (2)安装依赖 ```sh $ npm install --legacy-peer-deps ``` ### 2.自动还原代码 自动还原代码指使用自动化工具还原代码,包括以下几个步骤: - 解包 - 转换 - 格式化 仓库中已包含自动还原后的代码,无需还原即可使用。 当然你也可以重新自动还原代码。 自动还原代码的设备性能要求: - 有 4GiB 的行运行内存可用。 提示:如果设备内存不多,Node.js 的内存限制会比较小,可以通过设置环境变量 `NODE_OPTIONS = "--max_old_space_size=4096"` 来调大内存限制。 ```sh $ npm run auto-reverse ``` ### 3.以开发模式打包运行解包后的代码 #### (1)启动开发服务 ```sh $ npm run start ``` #### (2)在浏览器中打开 在本机浏览器中打开 。 ### 4.构建生产版本 ```sh $ npm run build ``` 提示:你可以使用下面这个命令在本地启动一个服务器来查看生产版本。 ```sh $ npm run serve ``` 依然是在 中打开。 ## 四、目录结构说明 ### 1.公开文件(/public) 编程猫 CoCo 编辑器的公开代码文件(经格式化)。 不保留历史版本。 当存储的前版本为 v1.21.7。 ### 2.未还原的(/unrestored) 已拆成模块但还未还原的代码。 ### 3.源文件(/src) 还原过的的代码。 ## 五、派生 尽管还原 CoCo 源代码是一个漫长的过程,但是 CoCo 源代码计划允许已还原和未还原的代码混合运行,使得 CoCo 源代码现在就可以被用来派生 CoCo。 你可以使用本项目还原出来的代码制作其他功能,如:制作绕审核 Player、CoCo Next。 > [!WARNING] > > 但是请注意: > > 不建议更改未还原的代码(位于 /unrestored 中的代码),这些代码可能经常变更! ## 六、参与贡献 > [!WARNING] > > 请注意: > > 参与贡献时,请确保做出修改后的代码能够正常打包运行。 ### (1)解包代码 目前以下部分需要贡献: - 依赖项排除; - 后期代码转换。 ### (2)反压缩 请安如下步骤进行: 1.把目标代码移动到 `/src` 目录中恰当的位置; 2.在相应的解包程序中添加移动规则; 3.重命名给模块名称、代码中的量的名称等重新设置一个有意义的名称。