丑化失败。意外字符'`'
Uglification failed. Unexpected character '`'
gulp-uglify无法对这段代码进行uglify:
var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
</alertTemplate>
</document>`
它抱怨角色:`。该字符对苹果的JS框架有效。
我在 uglify 包中看不到任何忽略这些字符和其中的文本字符串的内容。我是否遗漏了文档中的某些内容?
Gulp-uglify 还没有对 ECMAScript 2015(又名 ES6,又名 Harmony)的官方支持,但稍加修改就可以使用开发中的存储库。
操作方法:
- 打开控制台并输入
cd node_modules/gulp-uglify
- 编辑package.json
dependencies": {
"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"
},
- 控制台输入:
npm update
准备好再次运行.pipe(uglify())
备用解决方案
- 通过
npm
下载以下内容:
npm install --save-dev gulp-uglify gulp-babel babel-preset-es2015
- 在
gulpfile.js
中添加以下要求:
var babel = require('gulp-babel'),
uglify = require('gulp-uglify');
- 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,然后对其进行丑化。
ES6 在 gulp-uglify 的新版本 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 (read more on browserlist)
last 2 chrome versions
firefox 56
使用 Flask + Jinja2 我已经解决了如下类似问题:
烧瓶
render_template('template.html', text='"+`Text\nhere`+"')
应用丑化 ...
JS
var result = "{{text}}"; // ---> "" + `Text\nhere` + "";
gulp-uglify无法对这段代码进行uglify:
var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
</alertTemplate>
</document>`
它抱怨角色:`。该字符对苹果的JS框架有效。 我在 uglify 包中看不到任何忽略这些字符和其中的文本字符串的内容。我是否遗漏了文档中的某些内容?
Gulp-uglify 还没有对 ECMAScript 2015(又名 ES6,又名 Harmony)的官方支持,但稍加修改就可以使用开发中的存储库。
操作方法:
- 打开控制台并输入
cd node_modules/gulp-uglify
- 编辑package.json
dependencies": {
"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony"
},
- 控制台输入:
npm update
准备好再次运行.pipe(uglify())
备用解决方案
- 通过
npm
下载以下内容:
npm install --save-dev gulp-uglify gulp-babel babel-preset-es2015
- 在
gulpfile.js
中添加以下要求:
var babel = require('gulp-babel'),
uglify = require('gulp-uglify');
- 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,然后对其进行丑化。
ES6 在 gulp-uglify 的新版本 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 (read more on browserlist)
last 2 chrome versions
firefox 56
使用 Flask + Jinja2 我已经解决了如下类似问题:
烧瓶
render_template('template.html', text='"+`Text\nhere`+"')
应用丑化 ...
JS
var result = "{{text}}"; // ---> "" + `Text\nhere` + "";