云函数 getDailyWords 与 getProgress 使用了 命名导入 方式引入 node-appwrite:
getDailyWords
getProgress
node-appwrite
// harmony_cloud/functions/getDailyWords/main.js:1 // harmony_cloud/functions/getProgress/main.js:1 import { Client, Databases, Query } from 'node-appwrite';
而项目其余 4 个函数(register / login / learnWord / db-init)以及 SKILL.md 第 3 章「云函数编写规范」第 2 条均要求使用 默认导入:
SKILL.md
import sdk from 'node-appwrite'; const { Client, Databases, Query } = sdk;
项目锁定 node-appwrite@^11.0.0(为兼容自托管 Appwrite v1.9.0 的 node-16.0 运行时)。v11 是 CJS 兼容的默认导出,不支持命名导入;命名导入会抛 export 'Client' not found,仅在 v14+(需 Node ≥ 18)才支持。
node-appwrite@^11.0.0
export 'Client' not found
两个函数部署后在 Appwrite node-16 运行时必然报错,导致:
属于核心链路 P0 阻断性缺陷。
在 node-16.0 运行时部署 getDailyWords / getProgress 并调用执行端点,观察函数日志出现 SyntaxError: Named export 'Client' not found。
SyntaxError: Named export 'Client' not found
两处改为默认导入,与其余函数保持一致:
已准备对应 PR,将一并修复。
问题描述
云函数
getDailyWords与getProgress使用了 命名导入 方式引入node-appwrite:// harmony_cloud/functions/getDailyWords/main.js:1 // harmony_cloud/functions/getProgress/main.js:1 import { Client, Databases, Query } from 'node-appwrite';而项目其余 4 个函数(register / login / learnWord / db-init)以及
SKILL.md第 3 章「云函数编写规范」第 2 条均要求使用 默认导入:import sdk from 'node-appwrite'; const { Client, Databases, Query } = sdk;根因
项目锁定
node-appwrite@^11.0.0(为兼容自托管 Appwrite v1.9.0 的 node-16.0 运行时)。v11 是 CJS 兼容的默认导出,不支持命名导入;命名导入会抛export 'Client' not found,仅在 v14+(需 Node ≥ 18)才支持。影响
两个函数部署后在 Appwrite node-16 运行时必然报错,导致:
getProgress)getDailyWords)属于核心链路 P0 阻断性缺陷。
复现方式
在 node-16.0 运行时部署
getDailyWords/getProgress并调用执行端点,观察函数日志出现SyntaxError: Named export 'Client' not found。修复建议
两处改为默认导入,与其余函数保持一致:
import sdk from 'node-appwrite'; const { Client, Databases, Query } = sdk;已准备对应 PR,将一并修复。
环境