我在一个文件夹中有很多js脚本(scripts / * .js)。 如何从gulp任务中执行所有操作(而不是多次使用' node script.js'?)
类似
gulp.task('exec_all_scripts', function () {
gulp.src(path.join(__dirname, './scripts/*.js'))
})
答案 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
});