更新,2012 年 1 月 9 日:
起初,我认为这是由于模板文字中的单引号造成的:
replyTo: `'MTN Support' <${functions.config().supportgmail.email}>`
但现在,已经证实即使是普通的模板文字也不支持grunt-contrib-uglify
:
throw new Error(`Unknown sender email address: ${mailOptions.from.address}.`);
同样的错误:
Warning: Uglification failed.
Unexpected token: name «sender», expected: punc «,».
Line 90 in functions/app-functions.js,functions/index.js,functions/viewer-functions.js,functions/site-functions.js
Use --force to continue.
请注意,即使uglify-js
单独无法解析这个。我也知道harmony or uglify-js-es6 version https://www.npmjs.com/package/uglify-js-es6在 GitHub 上,但由于这是用于生产部署目的,我不敢使用它,因为它从 4 年前就没有更新过。
那么是否证实了grunt-contrib-uglify v5.0.0
仍然不支持ES6 模板文字?任何其他解决方法或替代方案,无需将模板文字更改为传统+
字符串连接?谢谢!
原问题:
我有以下内容Gruntfile.js:
module.exports = function (grunt) {
grunt.initConfig({
// define source files and their destinations
uglify: {
files: {
src: 'functions/*.js', // source files mask
dest: '../project-staging/functions/' // destination folder
}
}
});
// load plugins
grunt.loadNpmTasks('grunt-contrib-uglify');
// register at least this one task
grunt.registerTask('default', ['uglify']);
};
当我跑步时grunt
在命令行中,我遇到了这个错误:
Warning: Uglification failed.
Unexpected token: string «MTN Support», expected: punc «,».
Line 44 in functions/app-functions.js,functions/index.js,functions/viewer-functions.js,functions/site-functions.js
Use --force to continue.
Aborted due to warnings.
下面是导致错误的代码:
var mailOptions = {
from: functions.config().supportgmail.email,
to: null,
cc: null,
bcc: null,
// This is the line that causes the error:
replyTo: `'MTN Support' <${functions.config().supportgmail.email}>`,
subject: null,
text: null,
html: null
};
我不知道这个错误意味着什么,因为我运行代码时没有任何错误,除非我尝试用 Grunt 对其进行丑化。我还听说最新版本grunt-contrib-uglify
已经支持了ES6,那么还能是什么呢?下面是我今天刚安装的 Grunt 和插件的版本:
"devDependencies": {
"grunt": "^1.3.0",
"grunt-contrib-uglify": "^5.0.0"
}
有人知道我的代码有什么问题吗?我认为将我的代码更改为使用旧的字符串连接方式没有意义+
因为模板字符串在我的整个项目中无处不在。提前致谢!