2014-10-28 119 views
9

我正在嘗試使用gulp-shell執行某些操作。我gulfile.js包含以下內容:Gulp-Shell不執行任何命令

var gulp = require('gulp'), 
    shell = require('gulp-shell'); 

gulp.task('test', function() { 
    shell(['echo test']); 
}); 

然後我運行它調用gulp test。這是我得到的輸出:

Using gulpfile ~/gulpfile.js 
Starting 'test'... 
Finished 'test' after 2.62 ms 

我的回聲調用沒有輸出。

我正在使用我連接的Ubuntu 14 VM,使用Putty

任何人都知道什麼是錯的?

回答

18

這是因爲它不是使用gulp-shell的好方法。

試試這個,如gulp-shell README所示。

var gulp = require('gulp'), 
    shell = require('gulp-shell'); 

gulp.task('test', shell.task([ 
    'echo test' 
])); 
+1

哦..這是很容易的,我打擾了我的腦袋。但是這與其餘的任務定義似乎並不一致。可能想詳細說明最大的區別是什麼? :-) – NewGulpUserxx 2014-10-28 08:52:48

+1

有沒有辦法讓它脫離輸出的顏色? – NewGulpUserxx 2014-10-28 08:54:05

+0

這就是它的工作方式。我認爲這與吞噬流數據的方式有關。我不認爲有顏色顯示的方法,也許嘗試將您的命令放在外部腳本文件中,然後用gulp-shell啓動該文件,只是一個想法。 – tiledcode 2014-10-28 08:58:10

4

爲了記錄在案,如果你想管一口殼,per specified in the doc

gulp.task('myGulpTask', [], function() { 
    return gulp.src('gulpfile.js', {read: false}) 
    .pipe(shell('echo "This works too"')); 
}); 
+0

這現在被認爲是反模式不這樣做 - https://github.com/sun-zheng-an/gulp-shell – davidbenjamin998 2017-10-16 09:30:37