TypeScript从其他文件导入常量时出现Cannot find module错误的原因?
导入常量时模块找不到的问题解决
问题背景
我尝试从项目内另一个文件夹的文件中导入一个JSON主体常量,已经给常量加上了export关键字(写法为export const post_next_questions_request_body = {}),但主文件一直报模块找不到的错误,试了好几种路径都没解决。
错误细节
- 原导入语句:
import {post_next_questions_request_body} from '..post-calls-bodies/post-next-questions';
- 报错信息:
Cannot find module '..post-calls-bodies/post-next-questions' or its corresponding type declarations.
- 已尝试的无效路径:
'..post-calls-bodies/post-next-questions''.post-calls-bodies/post-next-questions''post-calls-bodies/post-next-questions'
核心修复方案
你最关键的错误是相对路径的语法写错了:点符号和文件夹名称之间必须加斜杠。相对路径的基础规则是:
./指代当前文件所在的同级目录../指代当前文件所在目录的上级目录
结合你的文件结构(主文件位于tests/api-tests,post-calls-bodies是和tests同级的目录),正确的导入路径应该是:
import {post_next_questions_request_body} from '../../post-calls-bodies/post-next-questions';
如果主文件直接在tests文件夹下,路径简化为:
import {post_next_questions_request_body} from '../post-calls-bodies/post-next-questions';
额外排查点
- 核对目标文件名的拼写(包括大小写,Linux/macOS系统对文件名大小写敏感)
- 若为TypeScript项目,检查
tsconfig.json里的baseUrl、paths配置是否干扰了相对路径解析 - 确认目标文件的扩展名(如
.js/.ts),如果导入时省略了扩展名,要确保项目配置允许省略对应类型的扩展名
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

