2017-08-09 154 views
0

我在一個文件夾中有許多js腳本(scripts/*。js)。 如何從gulp任務中執行它們(而不是多次使用'node script.js')?從gulp任務運行節點js腳本

gulp.task('exec_all_scripts', function() { 
    gulp.src(path.join(__dirname, './scripts/*.js')) 
}) 
+0

Gulp不是一個真正的腳本選手。你爲什麼期望這是這份工作的正確工具? –

+0

我不知道。我認爲這是可以做到的吞嚥 – user8439944

回答

1

咕嘟咕嘟是任務轉輪,這意味着它的意思自動化命令序列;不運行整個腳本。相反,你可以使用NPM。我不認爲有一種方式來glob的腳本,並同時運行它們,但您可以設置每個文件作爲自己的新公共管理腳本,並使用npm-run-all運行它們:

{ 
    "name": "sample", 
    "version": "0.0.1", 
    "scripts": { 
     "script:foo": "node foo.js", 
     "script:bar": "node bar.js", 
     "script:baz": "node baz.js", 
     "start": "npm-run-all --parallel script:*", 
    }, 
    "dependencies": { 
     "npm-run-all": "^4.0.2" 
    } 
} 

然後你可以使用npm start運行所有腳本一次。

如果您確實需要使用gulp來運行腳本,則可以使用相同的策略,然後使用gulp-run來運行帶有gulp的npm腳本。

var run = require('gulp-run'); 

// use gulp-run to start a pipeline 
gulp.task('exec_all_scripts', function() { 
    return run('npm start').exec() // run "npm start". 
     .pipe(gulp.dest('output'));  // writes results to output/echo. 
}) 
0

你可以在你的腳本/導出功能*。js和它們導入gulpfile.js並調用函數「exec_all_scripts」的任務,很容易

0

你可以concatinate將所有腳本合併爲一個腳本,然後從相同的任務,不同的任務或使用不同的過程執行它。請參見下面的NPM包:https://www.npmjs.com/package/gulp-concat

下面是一個例子:

var concat = require('gulp-concat'); // include package 

gulp.task('exec_all_scripts', function() { 
    return gulp.src(path.join(__dirname, './scripts/*.js') 
    .pipe(concat('all_scripts.js')) 
    .pipe(gulp.dest('./dist/')); // assuming you had a dist folder but this could be anything 
});