2013-05-30 30 views
6

Tôi chỉ muốn có ý kiến ​​về quy trình làm việc của mình. Tôi biết Yeoman và có mục đích quyết định không sử dụng nó. Quy trình làm việc của tôi như sau:Quy trình làm việc của Bower và Grunt

  1. Chạy bower install để cài đặt tất cả các phụ thuộc tài sản của dự án.
  2. Chạy grunt sao chép tất cả tệp js từ thư mục thành phần bower sang thư mục js mới và tất cả các tệp css vào thư mục css mới.
  3. Tiếp tục sử dụng tác vụ grunt để nối và rút gọn tất cả các tệp js và css từ các thư mục mới và đặt chúng vào thư mục dist.
  4. Tham khảo css và js được rút gọn cuối cùng trong thư mục dist từ HTML.

Một điều tôi chắc chắn không muốn thực hiện trong tác vụ grunt của mình là thực hiện tác vụ phụ thuộc cụ thể, ví dụ: lấy tất cả các tệp js từ thư mục bootstrap vào thư mục js mới, sau đó lấy tất cả các tệp js từ thư mục prettyphoto vào thư mục js mới. Tôi muốn các nhiệm vụ grunt là như chung chung nhất có thể để tôi có thể sử dụng cùng một gruntfile trong bất kỳ dự án không có vấn đề gì phụ thuộc bower có thể trông như thế nào. Lý do là nếu tôi nên dành tất cả những thời gian viết gruntfile của tôi cho mỗi dự án, tại sao tôi sẽ không chỉ lấy mã nguồn cho tất cả các phụ thuộc theo cách thông thường.

Vì vậy, có một plugin grunt-contrib-copy để sao chép các tập tin từ nơi này sang nơi khác mà tôi sử dụng để lấy tất cả các tệp js từ bên trong thư mục thành phần của bower. Vấn đề là hầu hết các thành phần bower đi kèm với js thông thường và phiên bản rút gọn của nó. Vì vậy, tôi đang sao chép cả hai và ghép nối và làm xấu chúng. Vì vậy, mã trùng lặp!

Luồng công việc của tôi có hợp lý không? Vậy, làm thế nào tôi có thể loại bỏ vấn đề tôi đã đề cập trong đoạn trên?

Trả lời

2

Nếu tôi hiểu chính xác, bạn nên xem grunt-usemin. Bạn có thể bọc thẻ js của mình trong <!-- build:js js/foo.js -->. Tác vụ useminPrepare được bao gồm trong gói sẽ chuyển qua bất kỳ tập lệnh nào (hoặc css hoặc hình ảnh, v.v.) có ở đó và tự động thêm chúng vào tác vụ concat hoặc uglify.

Một nhược điểm mà tôi đã tìm thấy là nhiệm vụ usemin khá chậm nhưng hy vọng nếu this pull request được triển khai, mọi thứ sẽ nhanh hơn rất nhiều.

+0

Cảm ơn, tôi đã cố gắng làm việc với chúng tôi và thật tuyệt vời. Chỉ có điều là, các phiên bản sửa đổi của các tệp js và css thực sự không được tạo ra. Đây có phải là sự cố đã biết trên máy Windows hay không. Tôi không thấy bất cứ điều gì sai với cấu hình của tôi. – Prashant

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