【问题标题】:Gulp + Browserify task not working (no output)Gulp + Browserify 任务不工作(无输出)
【发布时间】:2015-12-23 00:00:57
【问题描述】:

我的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 之后它没有输出。我错过了什么吗?

【问题讨论】:

    标签: javascript node.js npm gulp browserify


    【解决方案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

    【讨论】:

    • 我在基本用法部分使用this
    【解决方案2】:

    我现在维护一个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()
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多