我正在使用gulp 4.当尝试使用gulp安装bower依赖项时,bower任务永远不会完成。以下示例实际上都安装了依赖项。
var run = require('gulp-run');
gulp.task('bower', function(done) {
run('./node_modules/.bin/bower install', {cwd: './temp'}).exec(function(err){
if (err) throw err;
done();
});
});
这永远不会结束。它只是挂起。
var bower = require('gulp-bower');
gulp.task('bower', function() {
return bower({cwd: './temp'});
});
这一个在完成后抛出The following tasks did not complete: bower. Did you forget to signal async completion?
。但是因为它抛出,我无法继续我的gulp.series
。
答案 0 :(得分:1)
你可以通过使用常规的'bower'包来解决这个问题,而不是'gulp-bower'。有一个用于凉亭的编程API,可以与本机承诺一起使用,以便与Gulp 4一起使用。
例如:
var gulp = require('gulp'),
bower = require('bower');
gulp.task('bower:install', function() {
return new Promise((resolve) => {
bower.commands.install(undefined, undefined, {
cwd: './temp'
}).on('end', resolve);
});
});
您会注意到我正在使用ES6箭头语法来表示匿名函数。只要您的gulpfile名为'gulpfile.babel.js'并且您已经安装了'babel-core'并且已经安装了gulp(本地安装就可以了),您可以使用ES6 for gulp。