2010-07-07 44 views
6

Bất kỳ ý tưởng nào về cách sử dụng Google Closure Compiler để kết hợp nhiều tệp JavaScript với bất kỳ tối ưu hóa nào? Cụ thể, chúng tôi muốn sử dụng Closure để triển khai hai phiên bản của trang web kết hợp JavaScript của chúng tôi: phát hành và gỡ lỗi. Để phát hành, chúng tôi đang sử dụng --compilation_level SIMPLE_OPTIMIZATIONS --manage_closure_dependencies đang hoạt động như dự định. Tuy nhiên, để gỡ lỗi, chúng tôi muốn JavaScript của chúng tôi được kết hợp nguyên vẹn/chưa sửa đổi để gỡ lỗi dễ dàng hơn. Dường như mức tối ưu hóa tối thiểu là WHITESPACE_ONLY, mọi ý tưởng sẽ được đánh giá cao.Bất kỳ ý tưởng nào về cách sử dụng Trình biên dịch Google Closure để kết hợp nhiều tệp javascript với bất kỳ tối ưu nào?

Trả lời

2

Bật ra có tùy chọn định dạng tệp JavaScript được xử lý bằng cách sử dụng --formatting PRETTY_PRINT. Tùy chọn thụt lề/định dạng (với khoảng trống) tệp JavaScript đầu ra, sao cho JavaScript dễ dàng gỡ lỗi.

Chúc các tài liệu là một chút chi tiết/hoàn chỉnh :)

2

Hai ý nghĩ đến ngay lập tức. Đầu tiên - Tại sao sử dụng trình biên dịch đóng cho nhiệm vụ đó, tại sao không chỉ là một cái gì đó như cat jsfile1.js jsfile2.js > debug.js? Thứ hai - Closure Inspector sẽ cho phép bạn gỡ lỗi mã được biên dịch bằng Trình biên dịch Closure bằng FireBug.

Để giúp bạn làm việc với mã được chuyển đổi, bạn cũng có thể cài đặt Closure Inspector, một công cụ giúp dễ dàng sử dụng trình gỡ lỗi JavaScript Firebug với đầu ra của Trình biên dịch.

+1

Chúng ta có thể không chỉ đơn giản nối các tập tin JavaScript trong debug, bởi vì chúng tôi vẫn còn phụ thuộc vào việc đóng cửa để quản lý các phụ thuộc JavaScript. Tôi sẽ xem xét sử dụng Trình kiểm tra đóng cửa, thử thách duy nhất sẽ là nếu chúng tôi cần gỡ lỗi một sự cố trong trình duyệt khác. – HOCA

4
--formatting PRETTY_PRINT for beautifying 
--debug true for meaningful names (after Advanced compilation) 
+0

Cờ '--debug true' chỉ áp dụng cho các bản biên dịch nâng cao (tức là không đơn giản)? – HOCA

+0

Nó không chỉ dành cho chế độ Nâng cao. Trong chế độ Nâng cao, tên thuộc tính và chức năng được thay đổi. Nếu bạn bật gỡ lỗi, tất cả các tên đã được đổi tên thành phiên bản chứa tên gốc (chỉ khác nhau), vì vậy bạn có thể ngay lập tức tìm ra tên thuộc tính nào đang cung cấp cho bạn sự cố. Trong chế độ đơn giản, bạn không cần điều đó bởi vì các thuộc tính và chức năng không được đổi tên, nhưng bạn vẫn có thể sử dụng --debug để tìm ra biến cục bộ nào được đổi tên thành. –

4

Concatenation hoạt động như bạn mong muốn nó:

java -jar compiler.jar --js 1.js --js 2.js --js_output_file out.js 
Các vấn đề liên quan