2015-03-17 4 views
2

Я использую grunt uglify и, похоже, не изменяет имена переменных. Мой объект «Бог», называется «Порше» и он держит, что и все эта функцию читаемой, как вы можете увидеть здесь:grunt uglify не искажает имена переменных

enter image description here

И это мой Gruntfile конфигурация:

uglify: { 
    options: { 
     banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', 
     mangle: { 
      except: ['jQuery', 'jquery'] 
     } 
    }, 
    build: { 
     src: [ 
      'assets/js/**/*.js' 
     ], 
     dest: 'assets/js/prod/all.min.js' 
    } 
} 

Я хочу он полностью калечит все, экономя байты над именами функций. Есть ли что-то, что я делаю неправильно?

ответ

1

Вы должны установить mangle: false, чтобы предотвратить изменения в именах переменных и функций:

uglify: { 
    options: { 
     banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n', 
     mangle: false 
    }, 
    build: { 
     src: [ 
      'assets/js/**/*.js' 
     ], 
     dest: 'assets/js/prod/all.min.js' 
    } 
} 

Проверьте documentation, чтобы увидеть еще один пример.

+0

Спасибо за ваш ответ, хотя я хотел бы уродовать калечить все мои имена переменных (сделать их короче/нечитаемым). Кажется, он не делает этого. – bitten

+0

Он хочет МАНЖАТЬ, а не предотвращать. У меня такая же проблема, что мои имена переменных остаются читаемыми. – Mick

+0

Мне не удалось разобраться с Миком, если вы можете .. пожалуйста, дайте мне знать! Также отправьте его в качестве ответа, и я отметю его. – bitten

1

Я понял это:

uglify: { 
    options: {     
     mangle: { 
      toplevel: true 
     } 
    } 
} 
Смежные вопросы