2012-09-08 36 views
7

Tôi có nhiều đoạn mã JS được chia sẻ trên nhiều dự án. Tôi phải sao chép hoặc chép chúng vào một tệp duy nhất cho từng dự án hoặc phục vụ chúng dưới dạng tệp riêng lẻ trên cdn. Cả hai đều là ý tưởng tồi.Quản lý phụ thuộc và công cụ xây dựng cho JavaScript

Có bất kỳ công cụ quản lý và xây dựng phụ thuộc nào như Maven cho JavaScript không? Lý tưởng nhất là nó sẽ mất một tập hợp các phụ thuộc js và xây dựng một tệp tin js duy nhất có thể được phục vụ trên cdn.

Tôi có thể viết kịch bản để làm điều đó. Nhưng tôi đang tìm cách để tìm thấy bất cứ điều gì có thể so sánh với Maven tồn tại cho JS.


Cập nhật 2014: Dựa trên câu trả lời ở đây và nghiên cứu của tôi sau đây là những công cụ phổ biến nhất:

Bower, NPM, RequireJS, Browserify, Webpack, Grunt, Gulp

Trả lời

5

RequireJS, nhưng đó là loại một điều khác với Maven, và những gì bạn đang yêu cầu nó cũng khác với Maven. Có bất kỳ số lượng bộ kết hợp/bộ giảm tốc JS nào, chẳng hạn như jekyll-combiner và một số người khác.

Nếu bạn đang sử dụng Maven, số JavaScript Maven Tools có thể được quan tâm. Nếu bạn không, tôi không biết một cách thống nhất để specifiy, tải về, kết hợp, vv cho các hệ thống xây dựng tùy ý. Một số công cụ node.js có thể hữu ích, nhưng tôi chưa bao giờ sử dụng nó bên ngoài ngữ cảnh node.js, vì vậy tôi không chắc chắn.

+0

Cảm ơn, có bất kỳ kết hợp nào trong số đó kết hợp/xây dựng nhiều tệp với một tệp tại thời gian xây dựng không? –

+0

@JohnS "Thời gian xây dựng" nghĩa là gì? Bạn đang xây dựng như thế nào? Tôi đã sử dụng combiners từ Maven tại thời điểm xây dựng. –

+0

Bộ kết hợp bạn đã sử dụng với maven, cái nào bạn nghĩ là tốt hơn? Và có bất kỳ trong số họ chấp nhận phụ thuộc như maven thay vì đường dẫn tập tin? –

3

Hãy xem grunt. Đó là công cụ xây dựng rất linh hoạt cho các dự án javascript. Được sử dụng bởi đội ngũ jquery và các dự án lớn khác. Nó kết hợp, rút ​​gọn, thử nghiệm, các tệp lint js, được nhúng trong javascript, có hàng tá plugin cho bất kỳ thứ gì bạn muốn

4

http://webjars.org/ gói Thư viện JS dưới dạng tệp JAR và cung cấp chúng dưới Maven.

RequireJS không thay thế cho WebJars; nó bổ sung nó. RequireJS sẽ sử dụng các tệp JS công cộng (trên CDN) khi chạy, trong khi Webjars sẽ tải xuống các tệp cần thiết tại thời gian xây dựng và bạn có tự lưu trữ chúng không. Vì hầu hết các tệp JS không được lưu trữ trên CDN, tôi sử dụng Webjars để tải xuống các tệp JS cần thiết tại thời gian xây dựng và tham chiếu chúng bằng cách sử dụng RequireJS. Bằng cách đó tôi có được những điều tốt nhất của cả hai thế giới.

+1

WebJars chỉ là các tệp zip với tất cả các tài nguyên tĩnh được dọn sạch. Tôi thích nó rất nhiều nhưng mọi người tiếp tục đánh giá thấp maven để giải quyết phụ thuộc phía khách hàng của họ. Không chắc chắn lý do tại sao :-(Tốt hơn và thanh lịch hơn bằng cách sử dụng bower và tải về toàn bộ freaking GitHub repo IMO – aruizca

+0

Tôi đã thực hiện sự lựa chọn của tôi cho WebJars.Tôi đã xem [vài lựa chọn khác] (http: //centurion.nfors.com/w/programming/javascript/start # javascript_and_maven), nhưng tìm thấy WebJars dễ bắt đầu nhất. –

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