从gulp任务运行节点js脚本

时间:2017-08-09 13:03:43

标签: javascript node.js gulp task

我在一个文件夹中有很多js脚本(scripts / * .js)。 如何从gulp任务中执行所有操作(而不是多次使用' node script.js'?)

类似

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

3 个答案:

答案 0 :(得分:5)

Gulp是任务运行者,这意味着它意味着自动执行命令序列;不运行整个脚本。相反,您可以使用NPM。我不认为有一种方法可以同时运行脚本并运行它们,但您可以将每个文件设置为自己的npm脚本并使用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. 
})

答案 1 :(得分:0)

您可以在脚本/ * .js中导出函数并将它们导入gulpfile.js并调用' exec_all_scripts'中的函数。任务,很容易

答案 2 :(得分:0)

您可以将所有脚本合并为一个脚本,然后从同一任务,不同任务或使用不同的过程执行它。请参阅以下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
});