You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel部署后端遇Stripe模块导入错误求助

解决Vercel部署中Stripe ES模块找不到的问题

问题分析

你遇到的Error [ERR_MODULE_NOT_FOUND]并非直接由CORS配置修改导致,而是Vercel的Serverless函数环境与本地环境在模块解析、依赖构建逻辑上存在差异,导致Stripe的ES模块路径无法被正确识别。


解决方案

1. 强制使用Stripe的CommonJS版本

将你的Stripe导入代码替换为错误提示中建议的CJS路径,直接绕过ES模块解析问题:

// 若使用CommonJS
const Stripe = require('stripe');

// 若坚持使用ES模块语法
import Stripe from 'stripe/cjs/stripe.cjs.node.js';

2. 统一本地与Vercel的Node.js版本

在package.json中添加engines字段,指定与本地一致的Node版本,避免版本差异导致的模块解析逻辑不同:

"engines": {
  "node": "18.x" // 替换为你本地使用的Node版本
}

3. 清理Vercel构建缓存

Vercel的构建缓存可能保留了旧的依赖产物,导致路径不匹配:

  • 进入Vercel控制台对应项目的部署记录
  • 点击「Redeploy」并勾选「Clear build cache」选项,重新构建部署

4. 锁定Stripe依赖版本

确保本地与Vercel安装的Stripe版本完全一致:

  • 在package.json中明确指定Stripe版本(如"stripe": "^12.18.0")
  • 运行npm install后提交package-lock.json到仓库,强制Vercel安装相同版本的依赖

5. 检查package.json的模块类型设置

如果你的package.json中存在"type": "module",Vercel会以ES模块模式处理代码,但Stripe的ESM产物在Serverless环境下可能存在路径问题。可以尝试暂时移除该字段,改用CommonJS语法导入依赖。


内容的提问来源于stack exchange,提问作者Shaikh Amanullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:44:53