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

Node.js路径存在却找不到模块?解决ES模块导入报错问题

问题:Node.js 18 + TypeScript 5.3.3运行时模块找不到错误

运行时抛出以下错误:
Unable to import main.handler module. Error: Cannot find module '/function/code/skill/index' imported from /function/code/main.js

本地TypeScript编译阶段无任何导入错误,但执行时无法定位指定模块。相关代码结构如下:

编译后的main.js

import { MainScenario } from "./skill/index";
export async function handler(request, context) {
    // ...
}

编译后的skill/index.js

export * from "./Scenario";

编译后的Scenario.js

export const MainScenario = {
    // ...
}

package.json

{
  "name": "example",
  "version": "1.0.0",
  "description": "",
  "type": "module",
  "main": "main.js",
  "scripts": {
    "build": "rimraf ./build && tsc"
  },
  "devDependencies": {
    "@types/node": "^20.11.19",
    "rimraf": "^5.0.5",
    "typescript": "^5.3.3"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es2022",
    "lib": ["es2022"],
    "module": "ES2022",
    "rootDir": "src",  
    "moduleResolution": "Node", 
    "resolveJsonModule": false, 
    "allowJs": true, 
    "outDir": "build",  
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true, 
    "strict": true,                 
    "noImplicitAny": true,                        
    "skipLibCheck": true                         
  }
}
原因分析与解决方案

核心问题

Node.js的ES模块(ESM)规范要求导入路径必须包含完整的文件后缀(如.js),但当前TypeScript编译生成的代码中,导入语句省略了后缀,导致运行时无法正确解析模块位置。

解决方案

方案1:调整TypeScript配置,自动生成带后缀的导入语句

修改tsconfig.json中的module和moduleResolution配置,让TypeScript严格按照ESM规范生成代码:

{
  "compilerOptions": {
    // 替换原有module和moduleResolution配置
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    // 其余原有配置保持不变
  }
}

重新执行npm run build后,编译生成的导入语句会自动添加.js后缀,符合Node.js ESM的要求。

方案2:手动补全编译后代码的文件后缀(临时应急)

如果暂时无法修改TS配置,可以直接修改编译后的文件:

  • main.js中修改导入语句:
    import { MainScenario } from "./skill/index.js";
    
  • skill/index.js中修改导出语句:
    export * from "./Scenario.js";
    

方案3:检查部署路径的正确性

确认部署环境中,main.js所在的/function/code目录下确实存在skill/index.js文件,避免部署过程中出现文件遗漏或路径错位的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:42:34