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

TypeScript转译后导入缺失.js后缀致模块找不到,求自动解决方法

解决TypeScript转译后导入路径丢失.js后缀的问题

调整tsconfig.json配置

需要设置以下关键配置项,让TypeScript严格遵循Node.js ES模块的解析规则:

  • module设为NodeNext或Node16:启用Node.js风格的ES模块处理逻辑
  • moduleResolution设为NodeNext或Node16:确保转译时保留导入路径的.js后缀
  • target设为ES2020及以上:适配Node.js对ES模块的原生支持
  • outDir指定转译文件输出目录(按需设置,保证文件结构对应)

示例关键配置片段:

{
  "compilerOptions": {
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "target": "ES2020",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

确认package.json配置

在package.json中添加"type": "module",告知Node.js当前项目采用ES模块规范:

{
  "name": "your-project-name",
  "type": "module",
  "scripts": {
    "build": "tsc"
  },
  "devDependencies": {
    "typescript": "^5.0.0"
  }
}

源文件导入规范

保持TS文件中的导入路径带.js后缀(如import { UserFavoriteRoom } from "./UserFavoriteRoom.js"),TypeScript转译时会自动保留该后缀到生成的JS文件中,无需手动修改。

验证效果

执行tsc或对应的build脚本后,查看转译后的User.js文件,导入路径会保留.js后缀,运行代码时即可避免Error [ERR_MODULE_NOT_FOUND]错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:56:14