2012-05-01 27 views
7

Đây là tình trạng khó xử của tôi:Tìm cách xóa nhận xét khỏi một lượng lớn tệp javascript

Tôi là một noob (hiện đang thực tập và giúp duy trì hai trang web thương mại điện tử) tại javascript. Gần đây tôi đã được chỉ định xóa tất cả nhận xét xảy ra trong thư viện javascript của chúng tôi (hơn 25.000 nhận xét!). Rõ ràng là tôi muốn tìm một chức năng hoặc một số chương trình có sẵn có thể phân tích cú pháp thông qua mã, xóa tất cả các ký tự sau // hoặc */...

Tôi đã xem xét một số bộ lọc có sẵn trực tuyến như Yui, jscompressor. com và uglifyJS sẽ làm nhiệm vụ này tự động hơn, nhưng có một vài vấn đề. Hoặc là chúng quá hung hăng (rút ngắn tên biến, loại bỏ tất cả khoảng trống, v.v.) hoặc chúng yêu cầu bạn nạp một dòng hoặc một tệp tại một thời điểm. Tôi đang xử lý 1000 nghìn tệp .js.

Chi tiết bổ sung: môi trường phát triển của chúng tôi là IDE Eclipse và xammp; ngôn ngữ là html, php, css.

Bất kỳ đề xuất nào của chương trình có thể phù hợp với nhu cầu của tôi sẽ tuyệt vời!

+14

Tại sao bạn muốn xóa nhận xét nhưng không thu nhỏ? – Mathletics

+2

hm. là nó có thể kịch bản một reg cũ cho kết thúc dòng. PERL chắc chắn có thể làm điều đó (tôi nghĩ). –

+2

http://jscompress.com/ nên làm điều đó cho bạn .. Có rất nhiều bộ khai thác khác trực tuyến cho cả js và css. Đó là một thực hành tốt để giữ tập tin gốc với thụt đầu dòng và nhận xét và rút gọn tệp tin sẽ sản xuất. – MilkyWayJoe

Trả lời

-1

Thực tế, không dễ để xây dựng một regexp loại bỏ tất cả nhận xét khỏi tài liệu javascript.

Các giải pháp cơ bản là sử dụng:

 yourJavascriptString.replace(/\/\*.+?\*\/|\/\/.*(?=[\n\r])/g, ''); 

Đáng tiếc là nó không luôn luôn làm việc. Nếu bạn cần giải pháp hoàn chỉnh hơn, vui lòng truy cập trang web này: http://james.padolsey.com/javascript/removing-comments-in-javascript/

+0

-1 vì điều này không phải lúc nào cũng hoạt động, thậm chí không gần. – djechlin

2

Xem xét kỹ hơn uglifyjs. Nó không nén hoặc không nén theo mặc định (bạn phải cung cấp tùy chọn -c và -m, tương ứng), và bạn có thể chọn chi tiết các loại nén nào, thậm chí đến mức chỉ định biểu thức chính quy cho các loại nhận xét để xóa. Và, bạn thậm chí có thể in trên đường ra ngoài nếu bạn nghiêng. Vì vậy, vấn đề với việc sử dụng nó là gì?

0

Tôi biết câu hỏi này là một vài năm tuổi - nhưng tất cả các trình rút gọn nhận xét Javascript tôi thấy không thể xử lý tệp Javascript 2.6MB mà tôi đã cố gắng loại bỏ.

Tôi tạo ra một jsfiddle với đoạn mã sau, sau đó dán các tập tin 2.6mb vào textbox và nó làm việc cho tôi:

$("textarea").val($("textarea").val().replace(/\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\//g,"")); /*remove these comment types*/ 

$("textarea").val($("textarea").val().replace(/\/\/.*/g,"")); // remove these comment types 

https://jsfiddle.net/40okonqo/

Hy vọng nó sẽ giúp một ai đó.

Tín dụng: Tôi đã sử dụng thông tin được tìm thấy ở đây để trợ giúp cụm từ thông dụng: http://blog.ostermiller.org/find-comment

Các vấn đề liên quan