![](/img/trans.png)
[英]Gulp run-sequence “'taskname' is a not valid task string” error
[英]Gulp and run-sequence error : Task is not configured as a task on gulp
我正在嘗試將run-sequence添加到我的gulp工作流程中,但每次我嘗試執行我使用run-sequence的任務時都會出現此錯誤:
任務未配置為gulp上的任務。
根據運行順序的來源,這是由此測試引起的:
if (isTask && !gulp.hasTask(t)) {
throw new Error("Task "+t+" is not configured as a task on gulp.");
}
我的任務被分成多個文件,如果我執行單個任務或具有依賴性的任務,一切正常,我唯一的錯誤就是這個:
'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']
);
}
});
測試不應該失敗,因為當我嘗試在runSequence函數之前添加這段代碼時,對於我嘗試在函數中執行的每個任務,它輸出為true:
console.log(gulp.hasTask('clean'); // Output true
runSequence(
'clean',
['index', 'styles', 'images', 'fonts', 'templates'],
['watchify', 'watch']
);
但我仍然有錯誤: 任務清理未配置為gulp上的任務。 如果我從數組中刪除'clean',它將在下一個任務中失敗: 任務索引未配置為gulp上的任務。
如果有人知道這里發生了什么......
謝謝您的幫助。
您的run-sequence
是全局安裝還是本地安裝?
嘗試在本地安裝,這解決了我的問題!
npm install run-sequence
我有同樣的問題,而我的解決方案是在Jacob Thomason提到的我的要求聲明中這樣做。
var runSequence = require('run-sequence').use(gulp);
問題是run-sequence在使用依賴項構建自身方面做得不好。 由於gulp是一個依賴項,它應該把它作為一個參數,你需要提供給構造函數。 不幸的是,它的編寫方式很難做到這一點。 有一個.use()方法,您可以鏈接到模塊的require()語句,以定義gulp模塊,但即使這是一廂情願的想法,假設在gulp模塊的地方正在進行require語句的引導是可用的。
我剛剛重寫了它。 它與當前版本不同,因為API已經發生了一些變化。 您需要構建模塊,將其分配給變量並調用run()方法,傳遞當前文檔中描述的任務和選項。
你可以在這里查看......
https://github.com/oojacoboo/run-sequence
如果人們想要,我可以更新自述文件,可能會給它另一個非沖突的名稱,並清理一些東西。 我意識到重寫可能比某些人更喜歡分歧,但依賴關系現在至少可以得到妥善處理。
如果需要拆分為多個文件,請使用此配方。 https://github.com/gulpjs/gulp/blob/master/docs/recipes/split-tasks-across-multiple-files.md
似乎應該刪除module.exports =
。
'use strict';
var gulp = require('gulp'),
runSequence = require('run-sequence');
gulp.task('default', function() {
...
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.