минификация javascript с помощью quote_keys не работает

Я минимизирую javascript с помощью gulp.

В моем JS есть такие объекты, как следующие

var a={"v":5}

Но после минимизации он преобразует мой объект в следующий:

var a={v:5}// but I don't want it to remove quotes in keys

Поскольку я использую этот javascript в расширении Chrome (в основном я хочу удалить эту ошибку )

Моя задача gulp выглядит следующим образом:

var uglify = require('gulp-uglify');

gulp.task('build1',function() {
    gulp.src(['../ext/app/background.js']).on('error', function(e){
        console.log("error:",e)
    }).pipe(uglify({mangle:true,quote_keys:true})).on('error', function(e){
        console.log("error1:",e)
    }).pipe(gulp.dest('../ext/app'));
});

person Akhilesh Kumar    schedule 26.01.2017    source источник
comment
Нет никакой разницы между {v: 5} и {"v": 5}. Потому что в первом случае v тоже будет строкой. Ошибка по ссылке не имеет отношения к вашему делу. Речь идет о деле a[key] против a["key"]   -  person Andrey    schedule 26.01.2017


Ответы (1)


Это потому, что вы передаете quote_keys в качестве параметра вместо включения его в параметр output в gulpfile при использовании пакета gulp-uglify. Попробуйте это, и вы получите желаемый результат.

 gulp.task('build1',function() {
    gulp.src(['a.js']).on('error', function(e){
        console.log("error:",e)
    }).pipe(uglify({output:{quote_keys:true}})).on('error', function(e){
        console.log("error1:",e)
    }).pipe(gulp.dest('app'));
   });
person acesmndr    schedule 26.01.2017