Web端Firebase集成Stripe后functions部署报错如何解决?
问题根因
你的stripe依赖被错误归类到了package.json的devDependencies(开发依赖)下,Firebase云函数部署流程只会安装dependencies分类下的生产依赖,云端运行时无法找到stripe模块,因此触发部署失败。
解决方案
- 进入项目的
functions目录,执行以下命令将stripe移动到生产依赖:
npm install stripe --save
- 确认修改后的
package.json结构符合以下要求:stripe条目出现在dependencies字段下,devDependencies中不再保留stripe条目:
"dependencies": { "firebase-admin": "^9.2.0", "firebase-functions": "^3.11.0", "stripe": "^8.156.0" }, "devDependencies": { "eslint": "^7.6.0", "eslint-config-google": "^0.14.0", "firebase-functions-test": "^0.2.0" }
- 重新执行部署命令即可正常发布:
firebase deploy --only functions
可选优化建议
不要将Stripe密钥硬编码在代码中,可通过Firebase环境变量存储敏感信息:
- 本地执行命令配置密钥:
firebase functions:config:set stripe.secret="你的Stripe密钥" - 代码中引入Stripe的逻辑修改为:
const stripe = require('stripe')(functions.config().stripe.secret);
内容的提问来源于stack exchange,提问作者Friendly Mushroom
相关产品推荐
相关产品推荐

