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

无法导入从GitHub Fork安装的Probot TypeScript库问题求助

解决Probot ESM分支导入问题

问题分析

使用支持ESM的Probot fork分支后,遇到两类导入错误:

  • Cannot find module 'probot' or its corresponding type declarations:依赖未完成编译,缺少可执行代码与类型声明文件
  • Module 'probot' has no exported member 'Probot':编译产物或类型声明未正确导出Probot类

解决方案

1. 完善依赖的编译脚本

直接从GitHub安装fork分支时,npm不会自动执行仓库的构建流程,导致node_modules/probot仅包含源码、无编译产物。针对你自己的fork版本,做以下调整:

  • 修改package.json中的postinstall脚本,确保TypeScript编译生成完整的代码和类型声明:
    "postinstall": "tsc -p tsconfig.json"
    
  • 检查tsconfig.json,启用类型声明生成并指定输出目录:
    {
      "compilerOptions": {
        "declaration": true,
        "outDir": "./lib",
        "module": "ESNext",
        "target": "ES2020"
      }
    }
    

2. 修正fork的package.json入口配置

确保package.json中的入口和类型字段指向正确的编译产物:

{
  "type": "module",
  "main": "./lib/index.js",
  "module": "./lib/index.js",
  "types": "./lib/index.d.ts"
}

3. 验证编译产物

安装自己的fork后,进入node_modules/probot/lib目录:

  • 确认存在index.js和index.d.ts文件
  • 检查index.js是否包含export { Probot }代码
  • 检查index.d.ts是否包含export declare class Probot声明

4. 调整项目的TypeScript配置

确保你的项目支持ESM模块解析,修改项目根目录的tsconfig.json:

{
  "compilerOptions": {
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "target": "ES2020",
    "esModuleInterop": true,
    "skipLibCheck": true
  }
}

5. 本地调试(可选)

如果问题仍存在,用npm link将本地fork版本链接到项目,方便实时调试:

  1. 在fork的Probot目录执行npm link
  2. 在你的项目目录执行npm link probot
  3. 修改fork源码后重新执行npm run build,即可实时验证修改效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:17:12