从gulp任务运行节点js脚本

从gulp任务运行节点js脚本

问题描述:

我在一个文件夹中有许多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

咕嘟咕嘟是任务转轮,这意味着它的意思自动化命令序列;不运行整个脚本。相反,你可以使用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. 
}) 

你可以在你的脚本/导出功能*。js和它们导入gulpfile.js并调用函数“exec_all_scripts”的任务,很容易

你可以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 
});