1. 现象

云函数本地调试正常,可以调用云存储;
上传到云后,报:Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID b45e09c6-427b-4afc-a539-c82a8337b691, cloud function service error code -504002, error message Runtime.UserCodeSyntaxError: SyntaxError: Unexpected token '.'错误,卡了快1天。

2. 环境及原因

  • macos: Monterey
  • 工具:Stable 1.06.2306020
  • 源码中使用了?.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const cloud = require('wx-server-sdk');
    cloud.init({
    env: cloud.DYNAMIC_CURRENT_ENV
    });


    // 云函数入口函数
    exports.main = async (event, context) => {
    let { obj } = event
    return obj?.a?.b
    };
    怀疑是node版本的问题,本地是18,但应该是用开发工具提供的版本;云开发默认版本是node12.16

3. 解决办法

  • 云开发控制台上,云函数,新建云函数,选择运行环境node16.13
  • 开发者工具上,同步云函数列表,显示在控制台上新建的云函数
  • 使用上面的源码,正常调用,通过!