2015-01-14 11 views
9

Tôi gặp sự cố với usemin và không chắc chắn đó có phải là lỗi hay không.Có thể gulp-usemin chấp nhận nhiều tệp không?

cấu trúc ứng dụng của tôi rất đơn giản:

- root 
    |- gulpfile.js 
    |- app 
    | |- index.html 
    | |- about.html 
    | |- contact.html 
    | |- js 
    |  |- a.js 
    |  |- b.js 
    |  |- c.js 
    |  |- d.js 
    |  |- e.js 
    | 
    |- dist 

Mỗi file html của tôi đã một khối usemin trong đó bao gồm tất cả các kịch bản ví dụ:

<!-- build:js js/app.js --> 
<script src="../js/a.js"></script> 
<script src="../js/b.js"></script> 
<script src="../js/c.js"></script> 
<script src="../js/d.js"></script> 
<script src="../js/e.js"></script> 
<!-- endbuild --> 

Khi tôi chạy nhiệm vụ sau đây :

gulp.task('usemin'. function() { 
    gulp.src('app/*.html') 
     .pipe(usemin({ 
      assetDir: 'app/**/' 
     })) 
     .pipe(dest('dist/')) 
}); 

chỉ tệp html đầu tiên sẽ sao chép vào thư mục mới, js trong ca này se được nối như mong đợi.

Khi tôi thay đổi gulp.src để gulp.src(['index.html','about.html','contact.html']) tôi nhận được một vấn đề khác nhau, tất cả các file html chép nhưng chỉ là người đầu tiên trong thứ tự chữ cái chạy khối usemin thay thế 5 kịch bản với kịch bản mới.

Mọi thông tin chi tiết sẽ tuyệt vời, tôi đã đọc rộng rãi tài liệu gulp và tài liệu gulp-usemin và không thể tìm thấy bất kỳ lý do nào tại sao điều này sẽ xảy ra.

Ví dụ trên trang web NPM cho lần đầu tiên trong hai trường hợp của tôi thậm chí được đưa ra làm ví dụ, không chắc chắn những gì đang xảy ra ở đây? Có lẽ một cái gì đó để làm với nơi tôi đang chạy gulpfile từ?

Điều này có thể thực hiện được không?

Chúc mừng.

EDIT: Không chắc chắn những gì đang xảy ra ở đây nhưng tôi đã tạo một dự án hoàn toàn mới và xây dựng/cài đặt plugin npm và tập lệnh từ đầu và mọi thứ hoạt động. Không phải là một giải pháp tuyệt vời nhưng nó đã cứu tôi một thời gian.

+0

Vâng, bạn đang ít nhất là thiếu một trích dẫn kết thúc bằng assetDir: 'app/** /. Ngoài ra, mượn từ trang gulp-usemin GitHub: "Đường dẫn gốc thay thế cho tài sản". Vì vậy, có lẽ nó nên là "app /"? – juunas

+0

@juunas đây là mã psudo, nhưng cảm ơn bạn đã sửa lỗi đó. Các thử nghiệm phụ của tôi trong ví dụ này nằm trong ứng dụng/js vì vậy tôi cần xác định rằng chúng nằm trong thư mục con của ứng dụng không giống như tệp .html. –

+0

Sau khi kiểm tra [mã] (https://github.com/zont/gulp-usemin/blob/master/lib/blocksBuilder.js#L39), ứng dụng/** có thể sẽ không hoạt động khi được cắm vào [ path.resolve] (http://nodejs.org/api/path.html#path_path_resolve_from_to). – juunas

Trả lời

0

Thay vì sử dụng gulp-usemin chỉ ghi đè lên tập tin chính để sử dụng bên trong bower.json của bạn như thế này:

{ 
    "name": "appName", 
    "dependencies": { 
    "angular": "~1.3.9", 
    "angular-animate": "~1.3.9", 
    "angular-ui-router": "~0.2.13" 
    }, 
    "overrides": { 
    "angular": { 
     "main": "angular.min.js" 
    }, 
    "angular-animate": { 
     "main": "angular-animate.min.js" 
    }, 
    "angular-ui-router": { 
     "main": "release/angular-ui-router.min.js" 
    } 
    } 
} 
Các vấn đề liên quan