You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prettier格式化时为什么会在[myVariable]变量前自动添加分号?

原因说明

Prettier在以[开头的代码行前自动添加前置分号是预设的安全特性,用于规避JS自动分号插入(ASI)的隐性bug:如果上一行代码末尾没有分号,JS解析器会把下一行开头的[识别为上一行的属性访问操作,导致代码逻辑完全错误。你遇到的报错不是Prettier的问题,本质是项目中ESLint等代码校验规则与Prettier的格式化配置冲突导致的。

解决方案

  • 方案1:对齐规则(推荐)
    如果项目采用全分号代码规范:将ESLint的semi规则配置为["error", "always"],同时安装eslint-config-prettier关闭所有和Prettier冲突的ESLint规则即可解决报错。
    如果项目采用无分号代码规范:直接在Prettier配置文件中添加semi: false配置项,Prettier会统一遵循无分号逻辑格式化,不会自动添加这类前置分号。
  • 方案2:调整代码绕过触发条件
    不想改动全局配置的情况下,可以把数组解构赋值改成普通索引取值的写法,避免行首出现[字符即可:
    if (!article && app.$config.NODE_ENV !== 'development') {
      const entries = await app.$contentful.getEntries({
        content_type: 'content',
        'fields.route': params.id,
        options: { levels: 3 },
      })
      article = entries[0]
    }
    

内容的提问来源于stack exchange,提问作者Ayoub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:24:07