Gulp 在执行一系列任务时,吞咽清理不起作用
我正在使用yii2构建一个web服务。帮我把所有我用的东西放在一起。我的文件结构与此类似 gulpfile.jsGulp 在执行一系列任务时,吞咽清理不起作用,gulp,yii2,composer-php,Gulp,Yii2,Composer Php,我正在使用yii2构建一个web服务。帮我把所有我用的东西放在一起。我的文件结构与此类似 gulpfile.js index.php 基础知识/ -composer.json -卖主/ 使用composer获取所有依赖项后,它们将保存到供应商文件夹中。问题在于,出于某种原因,yii2将bower asset保存在名为bower asset的文件夹中,但只有当文件夹名为bower时,它才会工作。所以我写了这两个任务来帮助我。任务1将bower asset文件夹的内容复制到同一目录中的bower文件
index.php
基础知识/
-composer.json
-卖主/ 使用composer获取所有依赖项后,它们将保存到供应商文件夹中。问题在于,出于某种原因,yii2将bower asset保存在名为
bower asset
的文件夹中,但只有当文件夹名为bower
时,它才会工作。所以我写了这两个任务来帮助我。任务1将bower asset文件夹的内容复制到同一目录中的bower文件夹中,第二个任务删除bower asset
文件夹。我的问题发生在从默认任务运行任务2时。然后它返回一个类似这样的错误
[15:11:20] Starting 'bower-del'...
events.js:85
throw er; // Unhandled 'error' event
^
Error: ENOENT, lstat '/Users/Me/Documents/mamp/dumb/game/basic/vendor/bower-asset/jquery/dist'
at Error (native)
如果我试图告诉task在task 2开始之前等待task 1完成,也会出现类似的情况
gulp.task('bower-del',['bower-copy',function(){
最让我吃惊的是,如果我自己运行task 2,即gulp bower del,它会删除文件夹,这没有问题
为了简单起见,我从我的gulp文件中提取了其他任务
这就是我的吞咽任务的样子:
// Copies bower-asset into bower folder
gulp.task('bower-copy', function(){
gulp.src('./basic/vendor/bower-asset/**/*')
.pipe(gulp.dest('basic/vendor/bower/'));
});
// Deletes old bower-asset folder
gulp.task('bower-del', function () {
return gulp.src('./basic/vendor/bower-asset/', {read: false})
.pipe(clean());
});
gulp.task('default', ['bower-copy', 'bower-del']);
您应该按顺序运行de bower del。在我的示例中,我对生成之前的清理有相同的问题。这里我有两个任务
clean
和build
,其中build
任务应该只在clean
任务完成时运行,例如,它们不应该并行运行
我的执行情况如下:
gulp.task('build', (cb) => {
let runSequence = require('run-sequence');
runSequence('clean', ['info', 'styles', 'scripts', 'images', 'copy'], 'todo', cb);
});
gulp.task('clean', ['clear-cache'], () => {
let del = require('del');
let vinylPaths = require('vinyl-paths');
return gulp.src([settings.dist, settings.reports])
.pipe(vinylPaths(del));
});
这就可以了。只要看看插件并实现它;-)