解压 JavaScript 文件的最佳方法
有很多工具可以压缩 Javascript 文件(例如 Packer YUI)。
但是我怎样才能将它们解压缩回人类可读的格式呢?
我已经使用像 Packer YUI 这样的工具压缩了文件,但我无法再次访问源。
有什么好的软件或者技巧可以推荐来解压JS吗?
There are many tools to compress a Javascript file (Packer YUI for example).
But how can I decompress them back to a human readable format?
I have compressed a file using a tool like Packer YUI , but I couldn't reach the source back again.
Is there any good software or tricks you can suggest to decompress the JS ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这个网站真的很酷。您可以粘贴缩小的 JS,然后您将获得人类可读的视图。
This website is really cool. You can paste a minified JS, then you get a human readable view.
你不能。 JavaScript 压缩通常是一种有损压缩,信息会永远丢失。
您可以做的是使用源格式化程序和良好的重构工具,并痛苦地重建原始源。即使您不熟悉代码也应该是可能的; Jeff 和其他一些人对缩小版本的 WMD javascript 代码进行了逆向工程。
最后,您应该考虑使用版本控制系统和适当的备份来保证源代码的安全。
You can't. Javascript compression is usually a lossy one, and the information is lost forever.
What you can do, is use a source formatter and a good refactoring tool and -- painfully -- reconstruct the original source. Even if you are not familiar with the code it should be possible; Jeff and a few others reverse engineered the WMD javascript code from a minified version.
Finally, you should consider using a version control system and proper backups to keep your source code safe.
尝试使用 Notepad++ 的 JSMinNpp(现在称为 JSToolNpp)插件(用于压缩和解压缩)。
http://www.sunjw.us/jstoolnpp/
Try JSMinNpp (now called JSToolNpp) plugin for notepad++ (to compress and decompress).
http://www.sunjw.us/jstoolnpp/
解压缩 JAVASCRIPT
使用 /packer/ 压缩的典型 JavaScript 以以下代码开头:
eval
函数计算包含 JavaScript 的字符串参数。在大多数加壳器中,使用eval
,然后使用document.write
。要解压缩 JavaScript,请将这些方法替换为以下方法之一:
1. 将
eval
替换为alert
(警报将简单地在弹出窗口中打印代码)2. 如果 JavaScript 出现在
元素,您可以像这样添加
然后,替换
eval
(...);通过document.getElementById("code").value=…;.
DECOMPRESS JAVASCRIPT
A typical JavaScript compressed with /packer/ starts with the following code:
The
eval
function evaluates a string argument that contains JavaScript. In most packers,eval
is used, followed bydocument.write
.To decompress JavaScript, replace these methods by one of the following:
1. Replace
eval
byalert
(The alert will simply print the code in a popup-window)2. If the JavaScript appears after the
<body>
element, you can add a<textarea>
like so:Then, replace
eval
(…); bydocument.getElementById("code").value=…;.
像 ESLint 这样的 linter 也很方便。它可以使用“修复所有可自动修复的问题”来格式化代码,使您至少可以更轻松地开始进行手动编辑。
A linter like ESLint can be handy as well. It can format the code using the "fix all auto-fixable problems" to a point where you can at least start doing manual editing with greater ease.
我从来没有用过Packer YUI。但是如果您使用这个 javascript 加壳器,您始终可以使用这个 javascript 美化器 也可以解压缩代码。
一些javascipt minifier在压缩js的同时缩短了变量名。在这种情况下,即使你美化它,你也永远无法恢复原来的代码。
I never used Packer YUI. But if you use this javascript packer, you can always get your code back using this javascript beautifier which also decompresses the code.
Some javascipt minifier shorten the variable names while compressing the js. In that case you could never get your original code back even if you beautify it.