团队故事愿景产品路线图

我们的故事:让开发变得更简单

一次真实的工程困境,促成了 jsunpack.tech:把难以阅读的前端产物,变成可以理解和分析的代码。

作者
2025-12-22
阅读时间: 5分钟

为什么会有 jsunpack.tech

这件事最早其实并不是为了做一个产品。

几年前,一个做前端的朋友找到我,问了一个看起来很简单的问题: “这个页面效果能不能实现?”

他负责的项目里,需要实现一个基于 three.js 的复杂交互动画页面, 目标网站的效果已经在那里,但团队里没有人能完整看懂它是如何实现的。

我们面对的是一堆已经不可读的代码

在缺少相关知识,且拿不到任何源码和构建配置的情况下, 我们只能从浏览器里实际加载的前端产物入手,尝试拆解它的实现方式。

结果很现实:所有代码都已经被打包、压缩,甚至经过了多轮混淆。 变量名被替换成无意义的字符,字符串被加密,控制流被刻意打散。

当时尝试过不少现成工具,但大多数只能做到格式化成功, 实际上依然无法阅读和理解。

很多时间并不是花在理解业务逻辑上, 而是消耗在一件很基础、却又绕不开的事情上: 把代码变得“像人写的”。

市面方案解决不了的问题

后来我系统性地尝试过市面上几乎所有相关工具,结论非常一致:

  • 有的只能做代码格式化
  • 有的只针对单一混淆点(例如字符串)
  • 有的脚本能跑,但结果不可复用
  • 对真实项目(多入口、多 chunk、框架代码混杂)几乎无效

没有一个工具,是围绕「如何让人真正读懂前端产物」来设计的。

从自用脚本,到一套流程

没有合适的解决方案,只能自己动手。

通过将 AST 规则体系与大语言模型的Agent流程混排能力结合, 形成了一套混合驱动的代码分析流程。

一开始只是为了把某一个项目跑通, 后来发现这套流程在不同项目中反复都能用得上。

后来在不同项目里反复遇到同样的问题, 我才慢慢确认,这并不是一次偶然的情况。 而是很多开发者、小团队、技术负责人都会遇到的共性问题。

jsunpack.tech 在做什么

jsunpack.tech 目前主要做的一件事是: 把几乎不可读的前端构建产物,转换成一个 结构清晰、逻辑可分析、便于理解的版本。

我们目前并不以 100% 还原原始源码为目标。 这是一个客观存在的技术边界: 在多轮打包和混淆之后,部分语义信息本身已经不可逆地丢失。

但这并不是一个“终点”。

当前阶段,我们优先解决的是「能不能被人理解」; 而更长期的研究方向,是逐步探索:

是否有可能,让还原后的代码不仅可读, 而且在一定条件下具备可运行性。

这仍然处在研究和探索阶段,涉及模块边界重建、 运行时依赖补全、构建环境推断、框架与业务解耦等问题。 它并不是一个短期内可以实现的能力, 这也是我们持续在投入精力研究的方向。

目前被用在什么场景

自上线以来,平台已经服务了超过 3000 名用户, 完成了 10000+ 次 深度解包与分析。

很多用户并不是为了“直接复用代码”, 而是用于技术选型、方案分析、实现学习或问题排查。

技术边界与使用原则

我们只支持合法、合规的使用场景, 包括技术研究、架构学习、安全分析与问题定位。

不提供任何绕过授权、破解商业保护相关的能力,

接下来会做的事情

  • 提升复杂真实项目的整体还原稳定性
  • 支持更多打包与混淆场景
  • 逐步整理并公开可复用的技术实践经验

写在最后

jsunpack.tech 并不是一个宏大的叙事项目, 它只是来源于一个非常具体、也非常真实的问题。

如果你曾经因为看不懂前端产物而卡在技术决策之前, 或只是想搞清楚某个效果到底是如何实现的, 那它或许真的能帮到你。

相关文章推荐