Zoho Catalyst函数报Express模块未找到问题排查咨询
问题排查:Catalyst Function报"Express module not found"但本地调试正常
以下是几个常见的原因及解决方向:
依赖未正确部署到Catalyst环境
本地用catalyst serve调试时,直接读取的是本地node_modules里的依赖,但部署到Catalyst时,如果Express没被列为生产依赖或者没随代码一起上传,就会找不到。- 确认执行过
npm install express --save(而非--save-dev),保证Express在package.json的dependencies字段中 - 部署前检查是否通过Catalyst的部署工具正确打包了依赖,部分场景下需要手动触发环境内的依赖安装
- 确认执行过
Node.js版本不兼容
本地开发用的Node.js版本和Catalyst Function运行环境的版本差异过大,可能导致依赖解析失败。- 在
package.json中添加engines字段指定匹配的Node.js版本,例如:"engines": { "node": ">=16.x" } - 登录Catalyst控制台查看Function的运行环境版本,确保和本地一致
- 在
仅全局安装了Express,项目本地未安装
如果只是通过npm install -g express全局安装了Express,项目目录下没有本地的node_modules/express,本地调试时catalyst serve可能会 fallback 到全局依赖,但Catalyst环境不会读取全局依赖。解决方式是在项目根目录执行npm install express --save部署路径或入口配置错误
检查Catalyst控制台中Function的入口文件路径是否和本地项目结构一致,如果入口文件路径配置错误,会导致依赖加载的相对路径失效,进而找不到Express
内容的提问来源于stack exchange,提问作者Mari Selvan
相关产品推荐
相关产品推荐

