Uglify正在缩小`新的Obj();'错了

chr*_*989 0 javascript gulp gulp-uglify

我正在使用gulp和gulp-uglify来缩小我的javascript代码.

var uglify= require('gulp-uglify');
gulp.task('javascript', function() {
    return gulp.src('./scripts/*.js')
    .pipe(uglify())
    .pipe(gulp.dest('./'));
});
Run Code Online (Sandbox Code Playgroud)

原始的javascript

var Site = Site || {};
Site.Code = {
    obj: new ThirdPartyObject(),
    init: function() {
        obj.thirdPartyMethod();
    }
};
Run Code Online (Sandbox Code Playgroud)

缩小的javascript

var Site = Site || {};
Site.Code = {obj: new ThirdPartyObject,init: function() {
    obj.thirdPartyMethod()
}};
Run Code Online (Sandbox Code Playgroud)

缩小器正在删除括号obj: new ThirdPartyObject,因此当我拨打电话时我的代码会中断obj.thirPartyMethod().

我怎样才能解决这个问题?

Tib*_*bos 6

缩小器是正确的new X()并且new X是等效的.

但是,您的代码不正确.这是正确的版本:

var Site = Site || {};
Site.Code = {
    obj: new ThirdPartyObject(),
    init: function() {
        Site.Code.obj.thirdPartyMethod(); // <-- obj didn't exist
        // this.obj.thirdPartyMethod(); <-- also works, because this will be Site.Code when invoking Site.Code.init()
    }
};
Run Code Online (Sandbox Code Playgroud)