繁体   English   中英

从gulp任务运行节点js脚本

[英]run node js scripts from gulp task

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

就像是

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

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 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. 
})

您可以在scripts / *。js中导出函数并将其导入gulpfile.js中,然后在“ exec_all_scripts”任务中调用函数,这很容易

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM