问题背景
node12.x以后已经原生支持了esm,日常开发中全量使用的esm语法。但云对象却使用的是cjs语法
尝试着将module.exports修改为export default
通过前端jql语法调用云对象时却报错
做了如下尝试仍然不生效
- 将云对象所在目录的package.json文件中的type修改为module
- 配置云函数node版本为18
云函数配置如下:
{
"name": "ledgers",
"version": "1.0.0",
"description": "礼薄管理云对象",
"type": "module",
"main": "index.obj.js",
"cloudFunction-config": {
"runtime": "Nodejs18"
},
"dependencies": {
"zod": "^3.22.4",
"uni-id-common": "file:../../../uni_modules/uni-id-common/uniCloud/cloudfunctions/common/uni-id-common"
},
"author": "",
"license": "ISC",
"extensions": {
"uni-cloud-jql": {}
}
}
前端报错截图
hbuilder控制台错误日志
23:54:22.515 [本地调试][云对象:ledgers]调用方法:[readByUserId],请求参数:无
23:54:22.523 [本地调试]/Users/macbookpro/Documents/rww/kinkeer-2/client/uniCloud-aliyun/cloudfunctions/ledgers/index.obj.js:5
23:54:22.524 [本地调试]export default {
23:54:22.524 [本地调试]^^^^^^
23:54:22.524 [本地调试]
23:54:22.525 [本地调试]SyntaxError: Unexpected token 'export'
23:54:22.525 [本地调试] at new Script (node:vm:99:7)
23:54:22.525 [本地调试] at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
冉娃娃 (作者)
感谢提醒,刚刚根据文档尝试设置云函数的node版本,好像也没生效
2025-08-09 16:54