Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Javascript 如何按顺序运行两个elixir任务?_Javascript_Node.js_Gulp_Laravel Elixir - Fatal编程技术网

Javascript 如何按顺序运行两个elixir任务?

Javascript 如何按顺序运行两个elixir任务?,javascript,node.js,gulp,laravel-elixir,Javascript,Node.js,Gulp,Laravel Elixir,请看下面的代码: var elixir = require('laravel-elixir') gulp = require('gulp'), fs = require('fs'); gulp.task('t1', function() { return gulp.src('1/1.js') .pipe(gulp.dest('2')); }); gulp.task('t2', function() { // setTimeout(function() { co

请看下面的代码:

var elixir = require('laravel-elixir')
  gulp = require('gulp'),
  fs = require('fs');

gulp.task('t1', function() {
  return gulp.src('1/1.js')
    .pipe(gulp.dest('2'));
});

gulp.task('t2', function() {
  // setTimeout(function() {
    console.log(fs.existsSync('2/1.js'));
  // }, 100);
  return gulp.src('2/1.js')
    .pipe(gulp.dest('3'));
});

elixir(function(mix) {
    mix.task('t1').task('t2');
});
当我取消注释
setTimeout
时,
console.log
开始输出
true
。这意味着,第二个任务在第一个任务还没有完成时就开始了。有没有办法让他们一个接一个地跑

我真正想做的是
browserify
myjs文件,在其中附加一些其他文件(自定义任务)并
version
结果。但是版本控制失败了,因为文件还没有出现

在运行
gulp
do
mkdir 1和&touch 1/1.js
之前,请注意。并在每次运行之前执行
rm{2,3}/1.js

这里是
laravel elixir
将此类任务包装在动态生成的任务中。包装器按顺序执行。但他们似乎不会等到子任务完成

所以,我能想到的最好的办法是:

var elixir = require('laravel-elixir');
var gulp = require('gulp');
var fs = require('fs');

elixir.extend('inlineTask', function(func, watcher) {
  var task = new elixir.Task(func.name, func);
  if (watcher) {
    task.watch(watcher);
  }
});

elixir(function(mix) {
  mix.inlineTask(function t1() {
    console.log('1 -> 2');
    return gulp.src('1/1.js')
      .pipe(gulp.dest('2'));
  }, '1/**/*.js').inlineTask(function t2() {
    console.log('2 -> 3');
    console.log(fs.existsSync('2/1.js'));
    return gulp.src('2/1.js')
      .pipe(gulp.dest('3'));
  }, '2/**/*.js');
});