【问题标题】:Gulp + babelify + browserify issueGulp + babelify + browserify 问题
【发布时间】:2015-10-17 14:26:43
【问题描述】:

我正在尝试使用 browserify 和 babelify 创建一个 gulp 任务。这是任务:

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

gulp.task('js', function () {
    browserify('./resources/js/*.js')
        .transform(babelify)
        .bundle()
        .pipe(source('*.js'))
        .pipe(gulp.dest('./public/js'));
});

我找到了一些示例代码,尝试使用它们,但结果总是一样。

当我运行任务并保存我的 example.js 文件时,出现以下错误:

TypeError: browserify(...).transform is not a function

我做错了什么?

【问题讨论】:

    标签: javascript gulp browserify babeljs


    【解决方案1】:

    您混淆了browserify 和gulp-browserify 的API。

    从gulp-browserify docs,你会想要做这样的事情:

    var gulp = require('gulp')
    var browserify = require('gulp-browserify')
    
    gulp.task('js', function () {
      gulp.src('./resources/js/*.js')
        .pipe(browserify({
          transform: ['babelify'],
        }))
        .pipe(gulp.dest('./public/js'))
    });
    

    编辑:自从第一次回答这个问题以来,gulp-browserify has been abandoned 和 gulp 已经发展了很多。如果你想用更新版本的 gulp 实现同样的目标,你可以follow the guides provided by the gulp team。

    你最终会得到如下的结果:

    var browserify = require('browserify');
    var babelify = require('babelify');
    var gulp = require('gulp');
    var source = require('vinyl-source-stream');
    var buffer = require('vinyl-buffer');
    var sourcemaps = require('gulp-sourcemaps');
    var util = require('gulp-util');
    
    gulp.task('default', function () {
      var b = browserify({
        entries: './resources/test.js',
        debug: true,
        transform: [babelify.configure({
          presets: ['es2015']
        })]
      });
    
      return b.bundle()
        .pipe(source('./resources/test.js'))
        .pipe(buffer())
        .pipe(sourcemaps.init({ loadMaps: true }))
          // Add other gulp transformations (eg. uglify) to the pipeline here.
          .on('error', util.log)
        .pipe(sourcemaps.write('./'))
        .pipe(gulp.dest('./public/js/'));
    });
    

    【讨论】:

    • 郑重声明,此插件不再维护,请看帖子中的链接。
    • 感谢您更新了答案以反映 Browserify 更改。 +1!
    • 感谢@Ross,这个 gulpfile 配置节省了我的时间
    猜你喜欢
    • 2016-12-22
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2016-04-07
    • 2016-01-26
    • 2015-10-02
    相关资源
    最近更新 更多