丑化失败。意外的角色'`'

时间:2015-12-21 14:45:49

标签: gulp gulp-uglify tvml tvjs

gulp-uglify无法解释这段代码:

    var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
        <document>
          <alertTemplate>
            <title>${title}</title>
            <description>${description}</description>
          </alertTemplate>
        </document>`
它在角色抱怨:`。该角色适用于苹果公司的JS框架。 我无法在uglify包中看到任何内容来忽略这些字符及其中的文本字符串。我错过了文档中的内容吗?

3 个答案:

答案 0 :(得分:15)

Gulp-uglify尚未对ECMAScript 2015(又名ES6,又称Harmony)提供官方支持,但只需稍加修改即可使用开发中的存储库。

操作方法:

  1. 打开控制台并输入
  2. cd node_modules/gulp-uglify

    1. 编辑package.json
    2. dependencies": { "uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony" },

      1. 控制台输入:
      2. npm update

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

        替代解决方案

        1. 通过npm
        2. 下载以下内容

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

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

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

            1. gulp任务如下:
            2. 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,然后对其进行修改。

答案 1 :(得分:0)

名为gulp-uglify-es的gulp-uglify较新版本支持

ES6。如果您正在使用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(read more on browserlist

last 2 chrome versions
firefox 56

答案 2 :(得分:0)

使用Flask + Jinja2我已经解决了类似的问题,如下所示:

  1. 烧瓶

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

  2. 应用丑化 ...

  3. JS

    var result =“ {{text}}”; // --->“” +`Text \ nhere` +“”;