Wakaru 使用教程
wakaru 🔪📦 Javascript decompiler for modern frontend 项目地址: https://gitcode.com/gh_mirrors/wa/wakaru
1. 项目介绍
Wakaru 是一个针对现代前端开发的 JavaScript 反编译器。它能够将打包和编译后的源码恢复成原始代码。Wakaru 支持从 Webpack 和 Browserify 打包的工具中解包出分离的模块,并能够从 Terser、Babel、SWC 和 TypeScript 等编译器中反编译和还原代码。
2. 项目快速启动
首先,确保您的系统中已经安装了 Node.js。
使用命令行界面(CLI)
启动 CLI 的交互模式:
npx @wakaru/cli
或者,如果您使用 pnpm:
pnpm dlx @wakaru/cli
在交互模式下,CLI 将引导您完成整个过程。您也可以通过以下选项跳过某些步骤:
--output <目录>
: 指定输出目录。--force
: 强制覆盖输出目录。--concurrency <数字>
: 指定并发任务的数量。--perf
: 显示性能指标。--perf-output <目录>
: 性能指标输出目录。
如果您想以非交互模式运行 CLI,可以指定特性名称作为第一个参数。unpacker
和 unminify
将只运行相应的特性。all
将按顺序运行 unpacker
和 unminify
。
npx @wakaru/cli all <文件...> [选项]
npx @wakaru/cli unpacker <文件...> [选项]
npx @wakaru/cli unminify <文件...> [选项]
在单独特性模式下,CLI 将只使用在 --output
选项中指定的路径。
使用 API
首先,安装必要的包:
npm install @wakaru/unpacker @wakaru/unminify
或者,如果您使用 pnpm:
pnpm install @wakaru/unpacker @wakaru/unminify
以下是如何使用 @wakaru/unpacker
和 @wakaru/unminify
API 的示例:
// 使用 @wakaru/unpacker
import { unpack } from '@wakaru/unpacker';
const { modules, moduleIdMapping } = await unpack(sourceCode);
for (const mod of modules) {
const filename = moduleIdMapping[mod.id] ?? `module-${mod.id}.js`;
fs.writeFileSync(outputPath, mod.code, 'utf-8');
}
// 使用 @wakaru/unminify
import { runDefaultTransformationRules, runTransformationRules } from '@wakaru/unminify';
const file = {
source: '...',
// source code
path: '...',
// path to the file, used for advanced usecases. Can be empty.
};
const { code } = await runDefaultTransformationRules(file);
// 或者指定规则
const rules = ['un-esm', ...];
const { code } = await runTransformationRules(file, rules);
请注意,这个项目仍在早期开发阶段,API 可能会在将来发生变化。此外,这些包的体积很大,可能在将来会减小。在浏览器中使用时请谨慎。
3. 应用案例和最佳实践
- 案例一:使用 Wakaru 反编译一个被混淆的 JavaScript 文件,以便更好地理解和分析其功能。
- 案例二:将一个由 Webpack 打包的 JavaScript 应用反编译为原始模块,以便进行定制化修改。
最佳实践:
- 在反编译之前,确保了解相关的法律和道德规范,避免侵犯版权或非法使用。
- 在进行反编译操作时,保持代码的原始结构和逻辑,以便于后续的维护和修改。
4. 典型生态项目
目前,Wakaru 的生态系统主要包括以下项目:
@wakaru/cli
: 命令行界面,用于交互式或非交互式操作。@wakaru/unpacker
: 用于解包 JavaScript 模块。@wakaru/unminify
: 用于反编译和还原混淆的 JavaScript 代码。
这些项目共同构成了 Wakaru 的核心功能,为前端开发者提供了强大的工具集。
wakaru 🔪📦 Javascript decompiler for modern frontend 项目地址: https://gitcode.com/gh_mirrors/wa/wakaru
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考