2014-06-11 43 views
7

Tôi đang cố gắng thêm run-sequence vào luồng công việc gulp của mình nhưng tôi gặp lỗi này mỗi lần tôi thực hiện tác vụ của mình. :Lỗi Gulp và run-sequence: Tác vụ không được cấu hình như một nhiệm vụ trên gulp

Tác vụ không được định cấu hình làm tác vụ trên gulp.

Theo nguồn tin của chạy trình tự, điều này là do test này:

if (isTask && !gulp.hasTask(t)) { 
    throw new Error("Task "+t+" is not configured as a task on gulp."); 
} 

nhiệm vụ của tôi là tách ra thành nhiều tập tin, và tất cả mọi thứ hoạt động tốt nếu tôi thực hiện một nhiệm vụ duy nhất hoặc một nhiệm vụ với một sự phụ thuộc, lỗi duy nhất tôi có là về vấn đề này một:

'use strict'; 

var gulp = require('gulp'), 
    runSequence = require('run-sequence'); 

module.exports = gulp.task('default', function() { 
    if (release) { 
     runSequence(
      'clean', 
      ['index', 'styles', 'images', 'fonts', 'templates'], 
      'browserify', 
      'minify' 
     ); 
    } else { 
     runSequence(
      'clean', 
      ['index', 'styles', 'images', 'fonts', 'templates'], 
      ['watchify', 'watch'] 
     ); 
    } 
}); 

Xét nghiệm này không nên thất bại, bởi vì khi tôi cố gắng thêm đoạn mã này ngay trước khi chức năng runSequence của tôi, đó là đầu ra đúng đối với từng y công việc tôi cố gắng thực hiện trong hàm:

console.log(gulp.hasTask('clean'); // Output true 
runSequence(
    'clean', 
    ['index', 'styles', 'images', 'fonts', 'templates'], 
    ['watchify', 'watch'] 
); 

Nhưng tôi vẫn có lỗi: công tác làm sạch không được cấu hình như một nhiệm vụ trên ngụm. Tương tự nếu tôi xóa 'sạch' khỏi mảng, nó sẽ thất bại đối với tác vụ tiếp theo: Chỉ mục tác vụ không được định cấu hình làm tác vụ trên gulp.

Nếu ai có một ý tưởng về những gì đang xảy ra ở đây ...

Thanks for the help.

+1

bạn đã bao giờ tìm ra điều này chưa? – AJcodez

+0

Xin chào @AJcodez, tiếc là không có tôi thì không. Tôi sao chép mã nguồn chạy sequence.js để ngụm/thư mục nhiệm vụ của tôi và nó làm việc, nhưng tôi không thể sử dụng NPM với node_modules để xử lý các sự phụ thuộc. :/ – jgx

+0

Sau đây là làm việc 'ngụm^3.8.5' và' chạy chuỗi^0.3.6'. Nó không phải là một điểm cho tôi tho, có thể thử cài đặt lại? – AJcodez

Trả lời

12

run-sequence của bạn có được cài đặt trên toàn cầu hay cục bộ không?

Hãy thử cài đặt cục bộ, giải quyết vấn đề cho tôi!

npm install run-sequence 
+0

Điều này đã giải quyết được vấn đề của tôi! –

+1

phụ thuộc phát triển có thể được cài đặt trực tiếp sử dụng >> NPM cài đặt --save-dev –

2

Vấn đề là chuỗi chạy không hoạt động xấu khi tự xây dựng với phụ thuộc. Như gulp là một phụ thuộc, nên đưa nó vào trong constructor như một đối số, mà bạn cần cung cấp. Thật không may, cách nó được viết, thật khó để làm điều này. Có một phương thức .use() mà bạn có thể xâu chuỗi tới câu lệnh require() cho module, để định nghĩa mô đun gulp, nhưng thậm chí đây là suy nghĩ mơ ước, giả định rằng bootstrapping cho câu lệnh require đang được thực hiện ở nơi module gulp có sẵn.

Tôi vừa mới viết lại. Nó không phải là BC với phiên bản hiện tại, vì API đã thay đổi một chút. Bạn cần phải xây dựng mô-đun gán nó cho một biến và gọi phương thức run(), truyền vào các nhiệm vụ và các tùy chọn như được mô tả trong các tài liệu hiện hành.

Bạn có thể xem tại đây ...

https://github.com/oojacoboo/run-sequence

Nếu mọi người muốn, tôi có thể cập nhật các README, có thể cung cấp cho nó một tên khác không mâu thuẫn và làm sạch một số thứ lên. Tôi nhận ra rằng viết lại có thể đã phân tán nhiều hơn một số thích, nhưng phụ thuộc ít nhất có thể được xử lý đúng cách ngay bây giờ.

4

Tôi có vấn đề này giống nhau và giải pháp của tôi là để làm điều này thay vì ở của tôi yêu cầu tuyên bố như Jacob Thomason đề cập.

var runSequence = require('run-sequence').use(gulp); 
Các vấn đề liên quan