从gulp任务运行节点js脚本
问题描述:
我在一个文件夹中有许多js脚本(scripts/*。js)。 如何从gulp任务中执行它们(而不是多次使用'node script.js')?从gulp任务运行节点js脚本
像
gulp.task('exec_all_scripts', function() {
gulp.src(path.join(__dirname, './scripts/*.js'))
})
答
咕嘟咕嘟是任务转轮,这意味着它的意思自动化命令序列;不运行整个脚本。相反,你可以使用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
});
Gulp不是一个真正的脚本选手。你为什么期望这是这份工作的正确工具? –
我不知道。我认为这是可以做到的吞咽 – user8439944