UNcaught SyntaxError:duplicate data property...

本文记录了一个Vue项目在安卓系统的支付宝浏览器下出现的“UNcaughtSyntaxError:duplicatedatapropertyinobjectliteralnotallowedinstrictmode”错误的解决过程。该问题仅在特定环境下出现,通过仔细检查并移除模板中重复的属性得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时隔2个月,我的第二个vue-cli spa项目进入尾声。仍然是一边翻教程一边撸项目的懵逼状态。。

这个报错只在安卓系统的支付宝浏览器下出现。安卓微信、IOS微信、支付宝均无此问题。

UNcaught SyntaxError:duplicate data property in object literal not allowed in strict mode...

先说结论。出现这个问题,一般是template下的某个元素标签有重复的属性。比如:

<input :checked="item.checked" v-model="item.checked" />

 

说完结论,再记录下我的狗血填坑过程。

一开始,用了ProxyTable本地代理,在手机上做测试,安卓支付宝并没有报这个错误。而是在打包后报错,导致我误以为是babel编译的问题。

 

.babelrc配置:

{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-vue-jsx", "transform-runtime", ["component", {"styleLibraryName": "theme-chalk"
  }]
  ]
}

presets-env 已经包含大部分babel插件,包括es-2015,es-2016。所以不需要配 "es-2015",也不需要再去装这下面两个插件。

babel-plugin-transform-es2015-duplicate-keys 

babel-plugin-transform-es2015-computed-properties

modules: false 表示es6不转es5

target:browsers 列出的浏览器不转es5,其他的浏览器则转。

last 2 versions 会引入很多很多的代码,可以自定义browserlist

严格模式下,字面量对象重复属性报错,在es6得到修复。安卓支付宝浏览器的技术支持由UC浏览器提供。于是往这个方向尝试了下,还是报错。

没办法,只好一行一行排查代码中的变量。

这时候就看出分模块打包的好处了。我只需要在这个报错的模块里排查就行。

 

转载于:https://www.cnblogs.com/dodocie/p/8686105.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值