2015-12-21 40 views
5

一飲而盡,醜化不能醜化這段代碼:Uglification失敗。意外的字符「'」

var alertString = `<?xml version="1.0" encoding="UTF-8" ?> 
     <document> 
      <alertTemplate> 
      <title>${title}</title> 
      <description>${description}</description> 
      </alertTemplate> 
     </document>` 

它抱怨的字符:`。該字符適用於蘋果的JS框架。 我無法看到uglify包內的任何內容忽略這些字符及其中的文本字符串。我是否缺少來自文檔的東西?

回答

13

Gulp-uglify尚未對ECMAScript 2015(又名ES6,又名Harmony)提供官方支持,但只需稍加修改即可使用開發庫。

操作方法:

  1. 打開控制檯和輸入

cd node_modules/gulp-uglify

  • 編輯的package.json
  • dependencies": { "uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony" },

  • 控制檯輸入:
  • npm update

    而且它已準備好運行.pipe(uglify())再次


    替代的解決方案

    1. 下載以下vi一個npm

    npm install --save-dev gulp-uglify gulp-babel babel-preset-es2015

  • 添加以下需要在gulpfile.js
  • var babel = require('gulp-babel'), uglify = require('gulp-uglify');

  • 吞嚥任務如下:
  • gulp.task('uglify', function(){ gulp.src('*.js') .pipe(babel({ presets: ['es2015'] })) .pipe(uglify().on('error', function(e){ console.log(e); })) .pipe(gulp.dest('js')); });

    這樣做是將所有EcmaScript 2015 JS代碼轉儲到EcmaScript5,然後uglifies它。

    +0

    這是一個吞嚥解決方案,你的問題從咕嚕聲開始。你是否改用吞嚥? –

    +0

    @JonHarding哦,是的。我完全忽略了它。謝謝你指出。當我改用吞噬方式時,我遇到了同樣的問題,但找到解決方案更容易。我會編輯答案,因爲我有與吞嚥同樣的問題 – sailens