1191 个版本 (202 个破坏性更新)
新 0.203.2 | 2024 年 8 月 23 日 |
---|---|
0.202.0 | 2024 年 8 月 16 日 |
0.200.4 | 2024 年 7 月 30 日 |
0.192.19 | 2024 年 3 月 26 日 |
0.16.1 | 2021 年 7 月 31 日 |
在 编程语言 中排名 1195
每月下载量 17,445
在 69 个 包中使用(16 个直接使用)
9MB
232K SLoC
压缩器
SWC 项目的 EcmaScript 压缩器。这基本上是 terser 的移植。
注意
目前名称混淆器非常简单。为了专注于创建 MVP,我(kdy1)将使用简单的逻辑进行名称混淆,并在发布第一个非 beta 版本后实现内容感知名称混淆器。
调试提示
如果输出包含名为 e
、t
、n
的变量,通常意味着原始库以压缩形式发布,并且输入包含 eval
。如果使用 eval
,当前的 swc 名称混淆器不会做任何事情。
压缩器分析
从 mac os x 运行
./scripts/instrument/all.sh path/to/input/dir
贡献
测试
请优先执行测试而不是单元测试。执行测试更有用,因为在审查时没有人为错误的机会。
执行测试
您可以将测试添加到 ./tests/exec.rs
您可以从 ./crates/swc_ecma_minifier
运行 ./scripts/exec.sh
来执行 SWC 压缩器的测试。 exec.sh
使用 --features debug
运行 cargo 测试,并使 cargo 测试打印大量调试日志。您可以通过搜索 "change"
来了解负责优化的代码。压缩器有 report_change!
宏,并打印相关代码的位置。
固定测试
您可以在 ./tests/fixture
中添加测试。您可以选择任何目录,但请优先使用 issues
目录。您可以从 ./crates/swc_ecma_minifier
运行 ./scripts/test.sh
来运行固定测试。您可以像这样运行它:./scripts/test.sh foo
仅运行文件路径中包含 foo
的测试用例。如果您想获取更改的位置,可以执行 ./scripts/test.sh foo --features debug
。
依赖关系
~12–23MB
~357K SLoC