![](/img/trans.png)
[英]How to run a gulp task from Node.js - Any better alternative to gulp.start()?
[英]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.