工具
React Native 反编译器
处于 Alpha 阶段的 Node.js 命令行工具,可把 React Native 的 JavaScript 包(index.android.bundle 或 main.jsbundle)、未打包应用的 js-modules 目录,或 Webpack 入口包与分块包拆分为每个模块一个、便于阅读的文件。基于 Babel AST 的标注器、编辑器和反编译器插件会消除 Babel 辅助函数、逗号运算符链和缩写布尔值等编译痕迹,把元素创建调用还原为 JSX,并可将模块改写为 ES6 import/export 形式,最后用 ESLint 和 Prettier 整理输出。被识别为 npm 包的模块默认跳过,也可指定一个模块 ID,只输出该模块及其依赖。
使用条件与局限
- npm 上的最新版本为 react-native-decompiler 0.2.4,于 2023-03-31 发布,提供 react-native-decompiler 和 rnd 两个命令;所审阅的 master 分支提交与其同日,审阅时仍是最新提交。该包未声明 Node.js 版本范围,发布工作流使用 Node.js 12,并固定使用 Babel 7.12、ESLint 7 和 Prettier 2。它延续了 Richard Fu 的原始仓库,该仓库现已归档。
- 输入为取自用户自己 React Native 应用的纯 JavaScript 包、js-modules 目录,或 Webpack 入口包及分块目录。README 以粗体注明不支持加密或二进制格式的包。
- README 将该工具标为 Alpha 阶段,仓库没有自动化测试,CI 只进行构建和代码检查。README 中关闭 Prettier 的选项写作 --prettier,而源码实际读取的是 --noPrettier。输出是便于阅读的整理后模块代码,并非原始项目源码。
- 采用 AGPL-3.0-or-later 许可。本次未反编译任何包。
关于此条目
- 类型
- 工具
- 类别
- JavaScript 与 Electron 工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- README.md#L48-L70 GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- README.md#L115-L121 GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- package.json GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- src/main.ts#L46-L60 GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- src/decompilers GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- .github/workflows/node.js.yml GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- .github/workflows/publishnpm.yml GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- LICENSE GitHub · numandev1/react-native-decompiler · 修订 77c7b94
- https://registry.npmjs.org/react-native-decompiler/0.2.4
- https://github.com/richardfuca/react-native-decompiler