11

gulp-uglify is unable to uglify this piece of code:

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

it complains at the character: `. The character is valid for the apple's JS framework. I can't see anything inside the uglify package to ignore those characters and the text string inside it. Am i missing something from the documentation?

4

3 回答 3

16

Gulp-uglify 还没有对 ECMAScript 2015(又名 ES6,又名 Harmony)的官方支持,但稍作修改就可以使用开发中的存储库。

如何:

  1. 打开控制台并输入

cd node_modules/gulp-uglify

  1. 编辑 package.json

dependencies": { "uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony" },

  1. 控制台输入:

npm update

它已准备好.pipe(uglify())再次运行


替代解决方案

  1. 通过以下方式下载npm

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

  1. 在 中添加以下要求gulpfile.js

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

  1. gulp 任务如下:

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,然后对其进行 uglifying。

于 2015-12-22T08:38:25.417 回答
1

新版本的 gulp-uglify 支持 ES6,称为gulp-uglify-es。如果你使用 Gulp 4,你也可以使用 .browserlistrc。以下是我正在使用的需要 Chrome 和 Firefox 56 支持的项目示例。

gulpfile.js

    const uglify = require('gulp-uglify-es').default;

    .pipe(babel({
        presets: ['@babel/preset-env'],
        compact:false
     }))
     .pipe(uglify())

.browserlistrc(在 browserlist 上阅读更多内容

last 2 chrome versions
firefox 56
于 2019-11-14T18:03:44.580 回答
0

使用 Flask + Jinja2 我解决了类似的问题如下:

  1. 烧瓶

    render_template('template.html', text='"+`Text\nhere`+"')

  2. 应用丑化...

  3. JS

    变种结果 = "{{文本}}"; // ---> "" + `Text\nhere` + "";

于 2020-12-01T23:54:25.777 回答