如何将乙烯基源流输出到目标目录?

时间:2015-01-27 12:37:34

标签: javascript gulp browserify

我正在从(工作但已弃用)gulp-browserify转移到普通browserify模块。我的源代码树如下所示:

projectdir
  public
    js
      src
      dist

我的gulp任务如下所示:

var source = require('vinyl-source-stream');

gulp.task('js', ['clean'], function() {
    // Browserify/bundle the JS.
    bundler.bundle()
        // log errors if they happen
        .on('error', function(err) {
            return notify().write(err);
        })
        .pipe(source('./public/js/src/index.js'))
        .pipe(gulp.dest('./public/js/dist'));

});

然而,这写到了public/js/dist/public/js/src/

这显然很糟糕。但是要改变gulp.dest

.pipe(gulp.dest('./public/js/dist'));

写在我的项目目录之外!即:

 ~/Documents/dist/public/js/src/index.js

我已经看过很多使用gulp.src的gulp文档,但我没有使用gulp.src,我正在使用vinyl-source-stream

如何将乙烯基源流输出到public/js/dist

1 个答案:

答案 0 :(得分:4)

结束了解决这个问题:

var bundler = watchify(browserify({
    basedir: "./public/js/src"
}));

// Browserify our code
gulp.task('js', ['clean'], function() {
    // Browserify/bundle the JS.
    return bundler.bundle()
        // log errors if they happen
        .on('error', function(err) {
            return notify().write(err);
        })
        .pipe(source('index.js'))
        .pipe(gulp.dest('public/js/dist'));
});

要理解的主要事项是source使用browserify' basedir,而gulp.dest则不然。