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

Node.js TypeScript构建报错Error: Cannot find module '.' 如何解决?

常见引发原因
  • 相对导入未补全后缀:TypeScript 开发阶段依赖 ts-node/tsx 等工具的模块解析能力,允许省略 .js 后缀导入本地模块,但是 tsc 原生编译不会自动补全导入路径的后缀,Node.js 运行构建产物时只会识别 .js/.json/.node 后缀的文件,导致路径解析失败。
  • package.json 入口配置错误:package.json 中的 main、exports 字段指向的入口文件路径不存在,或者和构建产物的实际路径不匹配,Node.js 解析根模块 . 时找不到对应文件。
  • tsconfig.json 配置不匹配:module、moduleResolution 配置项不兼容 Node.js 运行时的模块规则,或者配置了 paths 别名但构建阶段未将别名转换成实际的相对路径,Node.js 无法识别 TypeScript 专属的路径别名配置。
  • 构建产物目录结构异常:编译后的文件层级和源码目录结构不一致,导致源码中写的相对路径在构建产物中找不到对应文件。
排查修复步骤
  • 检查相对导入语句:所有本地模块的相对导入统一补全 .js 后缀,注意 TypeScript 中导入 .ts 文件也要写 .js 后缀,和编译后的产物后缀保持一致。如果使用 tsup、esbuild 等第三方构建工具,可以开启自动补全导入后缀的配置,无需手动修改代码。
  • 校验 package.json 入口配置:确认 main 字段指向构建后的实际入口文件,比如产物输出到 dist 目录、入口为 index.js 时,配置应为 "main": "./dist/index.js"。如果使用了 exports 字段,确保根路径 . 对应的路径正确:
    {
      "exports": {
        ".": "./dist/index.js"
      }
    }
    
  • 修正 tsconfig.json 配置:确保 module 和 moduleResolution 配置匹配 Node.js 运行规则,使用 CommonJS 模块时参考配置:
    {
      "module": "CommonJS",
      "moduleResolution": "Node",
      "outDir": "./dist"
    }
    
    如果配置了 paths 别名,构建时引入对应转换插件(如 tsc 搭配 tsconfig-paths,运行时执行 node -r tsconfig-paths/register dist/index.js;tsup 可直接配置 alias 字段自动转换)。
  • 核对构建产物结构:对比源码 src 目录和构建输出 dist 目录的文件层级,确保编译后的文件路径和源码一一对应,不会出现文件缺失、层级错乱的问题。
  • 验证修复结果:重新执行构建命令后,运行构建产物入口文件确认错误是否消失。

内容的提问来源于stack exchange,提问作者Atiq Ur Rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:27:03