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

导入Flow类型模块报错:Cannot find module "./src/module.js"求助

解决Flow模块导入时"Cannot find module"的问题

嘿,我碰到过好几次这种Flow模块导入的坑,给你梳理几个最可能的原因和对应的解决办法,应该能帮你搞定:

1. 先核对文件路径是否搞反了层级

错误提示里说找不到./src/module.js,你先仔细检查下:

  • 你的form.js所在目录下,真的有src子目录吗?而且module.js确实在这个src目录里?
  • 如果module.js和form.js在同一个文件夹里,那导入路径应该是./module.js,而不是带src的;如果module.js在上一级目录的src里,路径就得写成../src/module.js,别把相对路径的层级搞混了。

2. 检查Flow的配置文件.flowconfig

Flow得正确识别你的模块所在目录,不然会找不到:

  • 打开.flowconfig,看看[include]字段里有没有添加module.js所在的目录?比如如果它在src下,就得确保include里有./src这一行;
  • 如果你的项目用了模块别名(比如直接import 'module'),那得在.flowconfig的[module.name_mapper]里加映射规则,比如:
    [module.name_mapper]
    ^module$ = ./src/module.js
    

3. 确认文件扩展名和导入写法

  • Flow默认认.js、.jsx、.flow.js这些扩展名,你看看module.js的后缀是不是正确的?别写成.flow或者其他Flow不识别的格式;
  • 有些打包工具允许省略扩展名,但Flow有时候需要明确写全,试试把导入语句改成import { capitalizeFirstLetter, titleize } from './src/module.js';(带上完整的.js后缀)。

4. 别忘了给模块添加导出!

看你贴的module.js代码,只写了函数定义,但没导出啊!这样哪怕路径对了,也没法导入使用。你得把函数导出:

// module.js
function capitalizeFirstLetter(data: string) { 
  return data.charAt(0).toUpperCase() + data.slice(1); 
}

function titleize(data: string) { 
  if (data === null || data === undefined) { 
    return ""; 
  } 
  // 你的剩余代码...
}

// 方式1:命名导出,适合多个函数
export { capitalizeFirstLetter, titleize };

// 方式2:默认导出,适合把所有函数打包成一个对象导出
// export default { capitalizeFirstLetter, titleize };

如果用默认导出,导入的时候也要对应调整:

import utils from './src/module.js';
// 使用的时候就是 utils.capitalizeFirstLetter('test')

5. 清掉Flow缓存试试

有时候Flow的缓存会抽风,导致明明路径对了却找不到模块。你可以先运行flow stop停掉Flow服务,然后删掉项目根目录的.flowcache文件夹,再重新启动Flow(flow start),之后再测试导入是否正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:33:43