uni-app编译小程序报语法错误

uni-app编译小程序报语法错误

项目信息 详情
产品分类 uniapp/小程序/微信
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows11
HBuilderX类型 正式
HBuilderX版本号 4.57
第三方开发者工具版本号 没运行起来
基础库版本号 没运行起来
项目创建方式 HBuilderX

操作步骤:

export function getProductslist(data) {  
    if (data.brand_id && Array.isArray(data.brand_id)) {  
        data = {  
            ...data  
        }  
        data.brand_id = data.brand_id.toString()  
    }  
    return request.get('product/spu/lst', data, {  
        noAuth: true  
    });  
}

预期结果:

  • 编译通过

实际结果:

  • line 78, col 13, Expected ‘}’ to match ‘{’ from line 77 and instead saw ‘…’.

bug描述:

store.js: line 78, col 13, Expected '}' to match '{' from line 77 and instead saw '...'.
我看写的语法是没有问题的

Image 1 Image 2


更多关于uni-app编译小程序报语法错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

hello , 我这里尝试运行你提供的代码,并没有复现这个问题,请你提供一下一个可以复现的项目。

更多关于uni-app编译小程序报语法错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这边找到问题了 查看下

这边找到问题了,项目都是我hbuildex新建初始化自带的,如果两个项目一个叫 xxx 一个叫 xxx - 副本 运行 xxx - 副本 就会出现问题

这个还没有复现,你能直接把这个项目发一下我运行看看吗?

同级目录 直接运行 demo - 副本 这个文件

确实,但是吧空格去掉就好了

有意思,不去空格,吧demo那个项目的名字改了也能好

回复 恭喜n发财: 因为我之前有个项目直接CV复制一份运行的 然后出现这个问题,后面我发现了

回复 xiaoxin1212: 回复 恭喜n发财: Win11直接复制项目 就是这样的名字

能复现,感谢你的反馈,之后会检查一下是什么造成的

这个错误是因为小程序编译器对ES6展开运算符(…)的支持问题导致的。在小程序环境中,部分ES6+语法需要特别注意兼容性。

解决方法有以下两种:

  1. 使用Object.assign替代展开运算符:
export function getProductslist(data) {  
    if (data.brand_id && Array.isArray(data.brand_id)) {  
        data = Object.assign({}, data, {
            brand_id: data.brand_id.toString()
        });
    }  
    return request.get('product/spu/lst', data, {  
        noAuth: true  
    });  
}
  1. 在项目的manifest.json中配置"transformPx"为false,并确保开启了ES6转ES5的选项:
{
    "mp-weixin": {
        "transformPx": false,
        "es6": true,
        "es5": true
    }
}
回到顶部