gulp-uglify无法解释这段代码:
var alertString = `<?xml version="1.0" encoding="UTF-8" ?>
<document>
<alertTemplate>
<title>${title}</title>
<description>${description}</description>
</alertTemplate>
</document>`
它在角色抱怨:`。该角色适用于苹果公司的JS框架。
我无法在uglify包中看到任何内容来忽略这些字符及其中的文本字符串。我错过了文档中的内容吗?
答案 0 :(得分:15)
Gulp-uglify尚未对ECMAScript 2015(又名ES6,又称Harmony)提供官方支持,但只需稍加修改即可使用开发中的存储库。
操作方法:
cd node_modules/gulp-uglify
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.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)
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我已经解决了类似的问题,如下所示:
烧瓶
render_template('template.html',text ='“ +`Text \ nhere` +”')
应用丑化 ...
JS
var result =“ {{text}}”; // --->“” +`Text \ nhere` +“”;