如何从Node.js运行gullow任务-gullow.start()的任何更好的替代方案
How to run a gulp task from Node.js - Any better alternative to gulp.start()?
我想知道从节点应用程序运行gullow任务的正确方法是什么。
目前我正在使用以下代码,但我想知道是否:
- 如何检测任务何时成功执行
- 是否检测到任务中的任何错误
我读到gulp.start()
,它并不是一个真正的公共API,如果它是真的,有什么选择?
require('./gulpfile.js');
gulp.start('release', function () {
// do smt
});
确实gulp.start()
不是Offical Gulp API的一部分。这是因为gullow任务实际上不应该从其他应用程序执行,而是从命令行执行。
然而,Gulp本身继承了另一个名为Orchestrator 的项目的大部分任务运行能力,包括start()
函数
(当我说它"继承"它们时,我的意思是"继承"。Gulp实际上只不过是Orchestrator+Node.js Streams+Vinyl文件+一些胶水+大量插件。)
现在Orchestrator本身非常应该在常规Node.js应用程序中执行。这意味着没有充分的技术理由不使用gulp.start()
函数。
由于gulp.start()
只是从orchestrator.start()
继承而来,因此所有附带的文档都适用。该文档回答了您关于在任务执行期间检测成功终止和错误的问题:
gulp.start('release', function (err) {
if (err) {
// an error occured
} else {
// success
}
});
但有一点需要注意:由于gulp.start()
不是官方API的一部分,因此可能会发生更改。这种变化已经迫在眉睫。从4.0版本开始,Gulp将不再继承Orchestrator,而是继承Underwriter。这意味着gulp.start()
将被gulp.series()
和gulp.parallel()
:取代
gulp.series('release')(function(err) {
if (err) {
// an error occured
} else {
// success
}
});
Gulp会自动在gulpfile中查找默认任务,并在那里运行它;你不必使用gulp.start().
gulp.task('default', ['dependencyTask1name', ..., 'dependencyTaskXname'], function () {
// Do stuff, produce output, what-have-you. I usually just place a console.log statement here with distinctive output, as well as inside every other task.
});
Gulp在终端中通知您每个任务的开始和结束。
[01:27:54] Starting 'default'...
[01:27:54] Finished 'default' after 51 μs
如果Gulp由于错误而无法完成任务,它也会将该错误输出到终端。示例任务:
gulp.task('routerStuff', function() {
console.log('routes compiling.');
return gulp.src('./source/index.js')
.pipe(babel())s
.pipe(gulp.dest('./routes/'));
});
终端输出:
$ gulp
/Users/EMC3/Documents/node-wordpress/gulpfile.js:35
.pipe(babel())s
^
SyntaxError: Unexpected identifier
...
- 有没有更好的动手、具体的方法来学习Javascript
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 设置嵌套对象属性的更好方法
- 您有更好的动态方式来缩短复杂的代码jquery吗
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 如何从Node.js运行gullow任务-gullow.start()的任何更好的替代方案
- 优化javascript的任何更好的方法
- 组合多个回调的任何更好方法
- 将值从第1页传递到第3页的任何更好的方法
- 实时更新的Facebook页面点赞数-->任何更好的方式
- 在没有任何公共属性的情况下垂直连接数组的更好方法
- 在数组中将数字相加,没有任何循环.我使用递归解决了.有没有更好的方法
- 调用 if 语句还是不断重新分配值更好?(JavaScript或任何语言)
- 一次隐藏多个元素的任何更好方法