Javascript 尝试缩小对象时出错

Javascript 尝试缩小对象时出错,javascript,uglifyjs,Javascript,Uglifyjs,获取意外令牌punc(,)时出错 在尝试创建一个.js文件时。由此产生错误 var requiredFields = { emailField, lastNameField, addressField, cityField, countryField, postField } 由于某些原因,我不能在emailField后面加逗号。我不确定为什么uglifyjs不能解析简单的javascript对象。 这也会产生同样的错误 var requir

获取意外令牌punc(,)时出错

在尝试创建一个.js文件时。由此产生错误

var requiredFields = {
    emailField,
    lastNameField,
    addressField,
    cityField,
    countryField,
    postField
  }
由于某些原因,我不能在emailField后面加逗号。我不确定为什么uglifyjs不能解析简单的javascript对象。 这也会产生同样的错误

var requiredFields = {
    0,
    1,
    2,
    3,
    4,
    5
  }
我正在运行UglifyJS3.4.3,包含代码的JS文件是ES5。 缩小我运行的代码
uglifyjs main.js--output main.min.js--compress--mangle

您的uglify版本是否支持ES6的速记对象表示法

有关这些符号的支持,请参见兼容性表。在非支持环境中,这些符号将导致语法错误。
from

在ES5中,JavaScript对象的行为类似于JSON,因此它希望您已经初始化了一些值。。 ES5中的对象文本需要属性名称和值。和属性,如果不带引号,则不应以整数开头

试一试


您使用的是哪个版本的uglifyjs(v2,v3)?您使用的是ES5还是ES6代码?当你调用uglifyjs时,你会传递哪些选项?更多的信息将有助于解决这个问题。对于ES6+,我建议使用uglifyes。第二个示例甚至没有使用有效的语法,OP不正确地使用JavaScript。您不能使用数字作为属性,除非它们被引用,例如,
var requiredFields={'1':1}两个示例都不是有效的ES5。在ES5中,您需要一个属性名和属性值;常量obj={num}>
obj{num:1}
@kit你是对的,我们必须提醒自己这些功能是“新的”(不是真的),但是,如果有时声称它可以与javascript一起使用,但实际上不能,那么调试问题的一个好方法就是降级到ES5。使用的代码是ES5,而不是ES6。帖子更新了更多信息
var requiredFields = {
 emailField:"",
 lastNameField:"",
 addressField:"",
 cityField:"",
 countryField:"",
 postField:""
}