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

如何导出类型定义并通过npm link使用本地包?TS2307错误求助

问题分析与解决方案

针对你开发的tepper库在本地安装后出现TS2307: Cannot find module 'tepper' or its corresponding type declarations的问题,可按以下步骤排查解决:

1. 验证类型文件路径与完整性

  • 直接检查库的dist/types/tepper.d.ts是否存在,且作为类型入口文件包含了所有库的类型定义。
  • 进入测试项目的node_modules/tepper目录,确认dist/types/tepper.d.ts的路径和package.json中exports配置的完全一致,避免编译后路径结构不符的问题。

2. 补充兼容旧版TypeScript的类型配置

虽然你已在exports中配置了types字段,但部分旧版TypeScript(<4.7版本)不支持该解析方式,建议在package.json根目录额外添加:

"types": "./dist/types/tepper.d.ts",
"typeVersions": {
  "*": {
    "*": ["./dist/types/*"]
  }
}

typeVersions字段可确保不同版本的TypeScript都能正确识别类型文件路径。

3. 检查测试项目的TypeScript配置

  • 测试项目的tsconfig.json中,需将moduleResolution设置为node16或nodenext,这是TypeScript识别exports字段的必要配置;若使用旧版解析策略(node或classic),会忽略exports中的类型配置。
  • 确保module字段与库的模块类型匹配:ESM项目设为ESNext/ES2020,CJS项目设为CommonJS。

4. 排查本地安装的缓存与路径问题

  • 确认npm install --save-dev ../../../..的目录层级正确,测试项目的node_modules/tepper确实存在且包含完整的dist目录和package.json配置。
  • 尝试删除测试项目的node_modules、package-lock.json后重新安装,避免缓存导致的文件缺失问题。

5. 检查库的TypeScript编译配置

  • 确认库的tsconfig.json中,declaration设为true,declarationDir设为./dist/types,确保编译时生成了正确的类型文件。
  • 检查include/exclude配置,避免因规则错误导致部分类型未被编译到dist/types目录中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:25:02