Công cụ hủy bỏ / giải nén JavaScript [đã đóng]


430

Có bất kỳ tập lệnh dòng lệnh và / hoặc các công cụ trực tuyến nào có thể đảo ngược các tác động của việc thu nhỏ tương tự như cách Tidy có thể dọn sạch HTML khủng khiếp không?

(Tôi đặc biệt đang tìm cách hủy bỏ một tệp JavaScript được rút gọn, vì vậy việc đổi tên biến vẫn có thể là một vấn đề.)


4
Đối với những người bạn có thể không biết, việc thu nhỏ thay đổi tên biến nội bộ thành một chữ cái và xóa các nhận xét mã. Hoàn tác những thay đổi này không thể được tự động.
Sông Vivian

@Daniel ALLenLangdon Điểm tốt. Tôi đã chỉnh sửa câu hỏi để nó không còn ngụ ý rằng việc thu nhỏ không thay đổi tên biến.
Andy Ford

12
FWIW ... vừa tìm thấy JS NICE jsnice.org
Andy Ford

marcusjenkins.com/linux/ mài làm việc tốt cho tôi.
ychaouche

1
Đối với @Daniel ALLenLangdon: jsnice.org có thể hủy bỏ và hủy mã hóa ngay cả mã angularjs 30k.
Xanh

Câu trả lời:


504

Bạn có thể sử dụng cái này: http://jsbeautifier.org/ Nhưng nó phụ thuộc vào phương thức minify bạn đang sử dụng, cái này chỉ định dạng mã, nó không thay đổi tên biến, cũng không giải nén mã hóa base62.

chỉnh sửa: trong thực tế, nó có thể giải nén các tập lệnh "đóng gói" (được đóng gói với trình đóng gói của Dean Edward: http://dean.edwards.name/packer/ )


2
+1 - Tôi đã sử dụng phương pháp này trước đây và jsbeautifier.org là một dịch vụ tuyệt vời.
Dan Lew

Cảm ơn. Điều này thật đúng với gì mà tôi đã tìm kiếm.
Andy Ford

5
Không, tôi đã nói cơ sở 62: dean.edwards.name/packeren.wikipedia.org/wiki/Base_62
Fabien Ménager

4
Có một thứ như một công cụ "thay đổi tên biến" và vẫn nhận thức được cú pháp JS để không phá vỡ mã?
Jorge Vargas

3
sẽ tăng lên 10 lần nếu tôi có thể. chỉ cứu tôi khỏi một ngày lãng phí!
benlumley

154

Các công cụ dành cho nhà phát triển Chrome có tính năng này tích hợp sẵn. Đưa ra các công cụ dành cho nhà phát triển (nhấn F12 là một cách), trong tab Nguồn, thanh bên trái phía dưới có một bộ biểu tượng. Biểu tượng "{}" là "In đẹp" và thực hiện chuyển đổi này theo yêu cầu.

CẬP NHẬT: IE9 "Công cụ dành cho nhà phát triển F12" cũng có tính năng "Định dạng JavaScript" trong tab Script dưới biểu tượng Công cụ ở đó. ( xem Mẹo số 4 trong F12 Bí mật gỡ lỗi web được giữ tốt nhất )

nhập mô tả hình ảnh ở đây


1
Đối với các .js cụ thể mà tôi đã cố gắng để giảm thiểu, phương pháp này hoạt động tốt nhất, chúc mừng.
igneizard

1
Điều này hiện nằm trong tab "Nguồn", không phải tab ScScript.
mhenry1384

@ mhenry1384: Có, Chrome đã đổi tên tab. Tôi cập nhật câu trả lời cho phù hợp.
Jon Adams

ĐÚNG!! (ứng dụng của chúng tôi không có chế độ gỡ lỗi / dev cho js mà tôi biết - chúng tôi rất may không rút ngắn / biến đổi tên biến.)
Steven Lu

2
Chỉ cần một cái đầu: Chrome đôi khi làm rối mã JavaScript. Ví dụ, if (a) /regex/.match(foo);được in khá if (a)\n / /regex/ .\nmatch(foo);là lỗi cú pháp.
amphetamachine

56

Hiểu rồi! xác nhận thực hiện chính xác điều này và thậm chí bạn có các tùy chọn cho định dạng tự động.


5
stackoverflow-then-google thay vì google-then-stackoverflow? :))))
dfa

Tôi đã làm google cho "javascript formatter online"
cgp

1
Plugin FireFox này sử dụng JSBeautifier để hủy bỏ javascript để sau đó bạn có thể đặt các điểm dừng trên các dòng trong trình gỡ lỗi js của FireBug !!: addons.mozilla.org/en-US/firefox/addon/javascript-deminifier
BT


14

Trong Firefox, SpiderMonkey và Rhino, bạn có thể bọc bất kỳ mã nào vào một hàm ẩn danh và gọi toSourcephương thức của nó , nó sẽ cung cấp cho bạn một nguồn được định dạng độc đáo của hàm.

toSource cũng dải ý kiến.

Ví dụ. :

(function () { /* Say hello. */ var x = 'Hello!'; print(x); }).toSource()

Sẽ được chuyển đổi thành một chuỗi:

function () {
    var x = "Hello!";
    print(x);
}

Tái bút : Đây không phải là một "công cụ trực tuyến", nhưng tất cả các câu hỏi về các kỹ thuật làm đẹp nói chung đều được đóng lại dưới dạng bản sao của công cụ này.


Hấp dẫn. Tôi đã hỏi câu hỏi 2,5 năm trước vì vậy tôi cảm thấy đã quá muộn để chỉnh sửa tiêu đề, nhưng tôi vẫn thích xem cả hai tùy chọn trực tuyến và ngoại tuyến. Cảm ơn bạn đã tham gia. +1
Andy Ford

10

Nếu bạn có máy Mac và TextMate - Một cách dễ dàng để định dạng Javascript là:

  1. Mở tệp bằng Textmate.
  2. Nhấp vào> Gói> JavaScript> Tài liệu định dạng lại
  3. Crack mở bia.

2
Bia đang được phục vụ ngay bây giờ :)
dgilperez

6

Hầu hết các IDE cũng cung cấp các tính năng định dạng tự động. Ví dụ trong NetBeans, chỉ cần nhấn tổ hợp phím CTRL + K .


5

Để thay thế (vì tôi không biết về jsbeautifier.org cho đến bây giờ), tôi đã sử dụng một bookmarklet kích hoạt lại nút giải mã trong Packer của Dean Edward.

Tôi tìm thấy các hướng dẫn và bookmarklet ở đây .

đây là bookmarklet (trong trường hợp trang web bị sập)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}




5

Tương tự như câu trả lời của Stone , nhưng dành cho các nhà phát triển Windows / .NET:

Nếu bạn có Visual Studio và ReSharper - Một cách dễ dàng để định dạng Javascript là:

  • Mở tệp bằng Visual Studio;
  • Nhấp vào ReSharper> Công cụ> Mã dọn dẹp (Ctrl + E, C);
  • Chọn "Mặc định: Định dạng lại mã" và bấm OK;
  • Crack mở bia.

4

Mặc dù có giao diện khá xa, nhưng JSPretty là một công cụ tốt, miễn phí và trực tuyến để tạo mã nguồn javascript có thể đọc được. Bạn có thể thực thi kiểu thụt đầu dòng ưa thích của mình và nó cũng có thể phát hiện sự che giấu.



3

Pretty Diff sẽ làm đẹp (in đẹp) JavaScript theo cách phù hợp vớithuật toán không gian trắng của JSLint JSHint .


Thật là mỉa mai trang web này là không đẹp, nhưng đây là một công cụ tuyệt vời.
Andy Ford


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.