Gulp + Browserify任务无效(无输出)

时间:2015-12-23 00:00:57

标签: javascript node.js npm gulp browserify

我的gulpfile.js

上有以下任务
gulp.task('default', ['browserify'])
gulp.task('browserify', function () {
  return browserify('./public/js/x.js')
      .bundle()
      .pipe(source('y.js'))
      .pipe(gulp.dest('./public/dist/js'))
})

但是在运行$ gulp之后它没有输出。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

我不确定你的browserify是什么,但我会假设它不是被弃用的gulp-browserify

这应该有效。我测试了它:

var gulp = require('gulp');
var browserify = require('browserify');
var source = require('vinyl-source-stream'); // MAKE SURE THIS IS THERE

gulp.task('default', ['browserify'])
gulp.task('browserify', function() {
    return browserify('./public/js/x.js').bundle() // .bundle is a browserify function
    .pipe(source('y.js'))    // Pass to output using vinyl-source-stream
    .pipe(gulp.dest('./public/dist/js'));
});

由于我的代码与您的代码完全相同,您能否确保安装了乙烯基?

npm install --save vinyl-source-stream

如果你还没有:

npm install --save gulp browserify

npm install -g gulp

答案 1 :(得分:0)

我现在正在维护repository,收集我在日常工作中使用的所有gulp任务。

这是browserify任务代码

var gulp = require('gulp')
var gulpif = require('gulp-if')
var browserify = require('browserify')
var gutil = require('gulp-util')
var through2 = require('through2')
var watchify = require('watchify')
var assign = require('object-assign')
var babelify = require('babelify')
var config = require('config').gulp

module.exports = function (is_dev) {
  var options = {
    paths: [config.src.js]
  }

  if (is_dev) {
    options = assign({}, options, {
      debug: true,
      cache: {},
      packageCache: {}
    })
  }

  var bundler = function () {
    return through2.obj(function (file, enc, next) {
      var b = browserify(file.path, options)
        .transform(babelify.configure({
          presets: ['es2015', 'react'],
          compact: false
        }))

      if (is_dev) {
        b = watchify(b)
        b.on('update', bundle)
        b.pipeline.on('file', function (filename) {
          gutil.log(gutil.colors.green('Bundled: '), filename)
        })
      }

      return b.bundle(function (err, res) {
        if(err) {
          return next(err)
        }
        file.contents = res
        next(null, file)
      })
    })
  }

  function bundle() {
    is_dev ? gutil.log(gutil.colors.yellow('Bundling...')) : null

    return gulp.src([
      config.src.js + '/**/*.js',
      '!' + config.src.js + '/lib/**/*.js'
    ])
    .pipe(bundler())
    .on('error', function(e) {
      gutil.log(gutil.colors.red(e.message))
      is_dev ? this.emit('end') : null
    })
    .pipe(gulp.dest(config.dist.js))
  }

  return bundle()
}