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

Vercel构建报错:找不到@stripe/stripe-js声明文件

解决Vercel部署时@stripe/stripe-js类型解析失败问题

问题重现

执行npm run build时出现类型错误:

./components/shared/Checkout.tsx:2:26
类型错误:找不到模块'@stripe/stripe-js'的声明文件。'/vercel/path0/node_modules/@stripe/stripe-js/dist/stripe.mjs'隐式拥有'any'类型。
在'/vercel/path0/node_modules/@stripe/stripe-js/types/index.d.ts'存在类型文件,但遵循package.json的"exports"规则时无法解析。'@stripe/stripe-js'库可能需要更新其package.json或类型定义。
2 | import {loadStripe} from '@stripe/stripe-js';
| ^
错误:命令"npm run build"以代码1退出

解决方案

  • 更新@stripe/stripe-js到最新版本
    旧版本的Stripe库可能存在exports字段配置不兼容TypeScript解析的问题,执行以下命令更新:

    npm install @stripe/stripe-js@latest
    

    更新后本地先运行npm run build验证是否解决问题,再重新部署到Vercel。

  • 调整TypeScript模块解析策略
    打开项目根目录的tsconfig.json,确保compilerOptions中配置了适配现代包导出规则的模块解析方式:

    {
      "compilerOptions": {
        "moduleResolution": "node16",
        "module": "ESNext",
        "target": "ES2020"
      }
    }
    

    这会让TypeScript正确识别包的exports配置,找到对应的类型声明文件。

  • 临时类型导入 workaround
    如果更新包和调整配置后仍未解决,可以在Checkout.tsx文件顶部添加类型引用声明:

    /// <reference types="@stripe/stripe-js" />
    

    或者直接修改导入路径为Stripe的ES模块入口:

    import { loadStripe } from '@stripe/stripe-js/dist/stripe.esm';
    
  • 清理依赖缓存重新安装
    有时候缓存会导致依赖解析异常,执行以下命令清理后重新安装:

    rm -rf node_modules package-lock.json
    npm install
    

内容的提问来源于stack exchange,提问作者Rukshan Jayasooriya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:10:00