Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gulp 吞壳延迟_Gulp_Gulp Shell - Fatal编程技术网

Gulp 吞壳延迟

Gulp 吞壳延迟,gulp,gulp-shell,Gulp,Gulp Shell,我试图在一系列吞咽任务结束时执行一个shell命令。我注意到,在shell命令拾取一些文件并将其复制到其他地方之前,不会写入对项目文件所做的更改。我正在使用gulp shell执行shell命令 我发现,如果我在复制文件之前执行“ls”命令,那么在我尝试复制文件之前,会有足够的延迟来写入所有文件。有没有更干净的方法 这是Grunfile文件: var gulp = require('gulp'); var shell = require('gulp-shell'); var jshint =

我试图在一系列吞咽任务结束时执行一个shell命令。我注意到,在shell命令拾取一些文件并将其复制到其他地方之前,不会写入对项目文件所做的更改。我正在使用gulp shell执行shell命令

我发现,如果我在复制文件之前执行“ls”命令,那么在我尝试复制文件之前,会有足够的延迟来写入所有文件。有没有更干净的方法

这是Grunfile文件:

var gulp = require('gulp');
var shell = require('gulp-shell');

var jshint = require('gulp-jshint');
var changed = require('gulp-changed');
var imagemin = require('gulp-imagemin');
var minifyHTML = require('gulp-minify-html');
var concat = require('gulp-concat');
//Uncomment out this line before going to production
//var stripDebug = require('gulp-strip-debug');
var uglify = require('gulp-uglify');
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');

// JS hint task
gulp.task('jshint', function() {
  gulp.src('./code/js/*.js')
  .pipe(jshint())
  .pipe(jshint.reporter('default'));
});

// minify new images
gulp.task('imagemin', function() {
  var imgSrc = './code/img/**/*', imgDst = './www/img';
  gulp.src(imgSrc)
  .pipe(changed(imgDst))
  .pipe(imagemin())
  .pipe(gulp.dest(imgDst));
});

// minify new or changed HTML pages
gulp.task('htmlpage', function() {
  var htmlSrc = './code/*.html', htmlDst = './www';
  gulp.src(htmlSrc)
  .pipe(changed(htmlDst))
  .pipe(minifyHTML())
  .pipe(gulp.dest(htmlDst));
});

// JS concat, strip debugging and minify
gulp.task('scripts', function() {
  gulp.src(['./code/js/index.js', './code/js/*.js'])
  .pipe(concat('script.js'))
  //Uncomment out this line before going to production
  //.pipe(stripDebug())
  .pipe(uglify())
  .pipe(gulp.dest('./www/'));
});

// CSS concat, auto-prefix and minify
gulp.task('styles', function() {
  gulp.src(['./code/css/*.css'])
  .pipe(concat('styles.css'))
  .pipe(autoprefix('last 2 versions'))
  .pipe(minifyCSS())
  .pipe(gulp.dest('./www/'));
});

gulp.task('prepare', shell.task(['ls', 'cordova prepare']));

// default gulp task
gulp.task('default', ['imagemin', 'htmlpage', 'scripts', 'styles', 'prepare'], function() {
});
这是准备任务——当它运行时,其他文件还没有完成执行

似乎我可以设置一个必须在准备之前完成的从属任务:

gulp.task('prepare', [styles], shell.task(['ls', 'cordova prepare']));

我还没有测试过它,但我希望它能工作?

尝试一下Gulp任务是异步的,这使它们能够同步启动。应该可以解决您的问题。

请粘贴您的gulpfile内容…您可能没有。请阅读此链接,但不明白,有些文件写得很快,有些文件需要花时间来写?