Browserify破坏功能。错误“未捕获的ReferenceError:未定义foo”

时间:2018-06-27 15:09:38

标签: javascript google-chrome gulp browserify

我有一个看起来像这样的函数:

foo = () => {
  someClass.foo((error, someVariabel) => {
    // code
  });
}

如果我运行它,它将起作用。但是我想扩展这个项目,所以现在我需要运行Browsify来更改功能,使其看起来像这样:

foo = function foo() {
  someClass.foo(function (error, someVariabel) {
    // code
  });
};

此功能现在在Chrome的= function foo() {行中给出错误,提示“未捕获的ReferenceError:未定义foo”。

有人知道为什么会发生这种情况以及我需要做什么吗?

我的gulp文件如下:

gulp.task('scripts', function() {
    gulp.src('js/*.js')
        .pipe(babel({
            presets: ['env']
        }))
        .pipe(browserify())
        .pipe(gulp.dest('dist/js'));
});

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Babel在Browserify上的工作效果很差,因此他们建议babelify

gulp.task("bundle", function () {
    return browserify({
        entries: "./src/index.js"
    })
        .transform(babelify.configure({
            presets: ["@babel/preset-env"]
        }))
        .bundle()
        .pipe(source("bundle.min.js"))
        .pipe(buffer())
        .pipe(sourcemaps.init())
        .pipe(uglify())
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest("./build"));

});