# debundle JavaScript 打包文件拆包工具

> Node.js 命令行工具，可把 Browserify 或 Webpack 生成的 JavaScript 打包文件还原为按模块拆分的文件树，便于逐个文件阅读，而不必面对一整个脚本。JSON 配置文件指定打包类型、入口模块，以及可选的 knownPaths（把数字模块 ID 映射为输出文件或 node_modules 中的包路径）；它还能以内联或变量方式改写被压缩工具重命名的 require 标识符，使输出可重新打包或在 Node 中运行。README 称该工具是作者为一个逆向工程项目了解打包结构而编写的，并指出拆包是有损的：无法恢复 package.json 设置和 Webpack 模块名称，压缩过的代码拆出后仍是压缩状态。

- 类型：工具
- 目标：网站
- 类别：网站分析工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/1egoman/debundle>
- 一手来源：<https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/debundle/>
- 记录 JSON：<https://awesomerea.org/resources/debundle/record.json>
- 英文版：[English](https://awesomerea.org/resources/debundle/index.md)

## 使用条件与局限

- README 称这是一个已不再维护的研究项目，在实验环境中大多能正常工作，但处理真实环境中的打包文件时经常失败。所审阅的 master 提交日期为 2018-06-16；npm 上 debundle 的最新版本是 2017-09-12 发布的 0.5.4，比仓库的 v0.5.3 标签和 package.json 中的版本更新；未完成的 v2 分支最后更新于 2020 年。
- 通过 npm i -g debundle 安装，运行方式为 debundle -i <打包文件> -o <输出目录> -c <配置文件>。package.json 要求 Node 6 及以上，.nvmrc 和 Travis CI 配置使用 Node 6，依赖也是同一时期的版本，如 acorn 4 和 recast 0.5。
- 只能解析 Browserify 打包文件，以及以数组形式传入模块的 Webpack 打包文件：模块列表不是数组时 Webpack 解码器会中止；其他打包工具未获官方支持，但可用 moduleAst 选项指向布局相同的模块列表。除非在 knownPaths 中指定名称，Webpack 拆出的文件以模块 ID 命名。
- test_bundles/ 目录包含四个小型示例打包文件及其配置和原始源码，CI 通过 test_bundles/run_test.sh 对它们执行拆包；与原始源码比对的部分已被注释掉，因此 CI 只检查拆包能否完成。待拆包的文件需由用户自备，README 的法律提示还提醒，部分服务条款禁止逆向工程。
- package.json 和 npm 软件包声明采用 ISC 许可，但仓库没有许可证文件，GitHub 也未识别出许可证；src/extern/replace-method 是随附的 MIT 许可模块，作者为 Hugh Kennedy。

## 一手来源

1. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/README.md>
2. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/DOCS.md>
3. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/package.json>
4. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/.travis.yml>
5. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/src/decoders/webpack.js>
6. <https://github.com/1egoman/debundle/tree/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/test_bundles>
7. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/test_bundles/run_test.sh>
8. <https://github.com/1egoman/debundle/blob/67531ffe13c3a78db08b51dd37f7ba9c4f77e98c/src/extern/replace-method/LICENSE.md>
9. <https://www.npmjs.com/package/debundle/v/0.5.4>

## 同分区更多条目：网站

- [JStillery JavaScript 部分求值反混淆工具](https://awesomerea.org/zh/resources/jstillery/index.md) · 工具
- [box.js 恶意 JavaScript 分析工具](https://awesomerea.org/zh/resources/box-js/index.md) · 工具
- [breakinggood 网站采集与重建工具](https://awesomerea.org/zh/resources/breakinggood/index.md) · 工具
- [Facebook BitMap Codec 参数编解码工具](https://awesomerea.org/zh/resources/facebookcodec/index.md) · 工具
- [DevLens Ultra 网页组件分析扩展](https://awesomerea.org/zh/resources/devlens-ultra/index.md) · 工具
- [AppThreat wasm-tools WebAssembly 解析与反汇编工具](https://awesomerea.org/zh/resources/appthreat-wasm-tools/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
