gulp:浏览化然后连接文件

时间:2016-03-31 09:44:58

标签: gulp browserify

我需要对文件进行浏览,然后将该包与另一个文件连接起来。我尝试了下面的gulp代码,但它没有正常工作。
当我在mymodule.js中进行更改并运行gulp时,这些更改会出现在bundle文件中,但不会出现在连接文件中,除非我再次运行gulp。
如果concat步骤没有等待bundle步骤完成并采用先前浏览过的bundle那就好了。 由于我是一个有吸毒成瘾的初学者,我确信我的gulp逻辑有问题...

我的gulpfile是:

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var concat = require('gulp-concat');

gulp.task('default', function() {
  var b = browserify('src/mymodule.js')
  .bundle()
  .pipe(source('mymodule-bundle.js'))
  .pipe(gulp.dest('src'));

  gulp.src([
        'bower_components/porthole/src/porthole.min.js',
        'src/mymodule-bundle.js'
    ])
    .pipe(concat('app.js'))
    .pipe(gulp.dest('dist'));
});

由于

3 个答案:

答案 0 :(得分:4)

  

如果concat步骤没有等待捆绑步骤完成并采用先前浏览过的捆绑包

确切地说会发生什么。 Gulp异步工作并具有最大的并发性,所以除非你告诉它等待什么,所有东西才会立即开始运行。

你可以将你的任务分成两个任务,然后向Gulp暗示一个人依赖另一个任务:

$qry = mysqli_query($con,"select * from db_order");
$str = '';
while($row = mysqli_fetch_array($qry)){
   $str .= $row['name'].",";
}
$data = rtrim($str, ",");
echo $data;

答案 1 :(得分:1)

试试这个:

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var concat = require('gulp-concat');

var paths = [
 'bower_components/porthole/src/porthole.min.js',
 'src/mymodule-bundle.js'
];

gulp.task('default', function() {
 return browserify('src/mymodule.js')
  .bundle()
  .pipe(source('mymodule-bundle.js'))
  .pipe(gulp.dest('src'));
});

gulp.task('default2', function() {
 return gulp.src(paths)
  .pipe(concat('app.js'))
  .pipe(gulp.dest('dist'));
});

gulp.task('final', ['default', 'default2']);

每次要创建一个包时都运行任务final。

答案 2 :(得分:1)

实际上,您不需要像其他答案中提到的那样分割您的任务:

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream');
var concat = require('gulp-concat');
var merge = require('merge-stream');
var buffer = require('vinyl-buffer');

gulp.task('default', function () {
    var b = browserify('src/mymodule.js')
            .bundle()
            .pipe(source('mymodule-bundle.js'))
            .pipe(buffer())
            // remove this line if you don't need 'mymodule-bundle.js' to be saved at all 
            .pipe(gulp.dest('src'));

    return merge(b, gulp.src('bower_components/porthole/src/porthole.min.js'))
           .pipe(concat('app.js'))
           .pipe(gulp.dest('dist'));
});