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

制作自定义模块时遭遇Module not found: Can't resolve错误求助

解决Module not found: Can't resolve './Myfetch'的问题

从你给出的错误信息和代码配置来看,这个问题核心出在文件名匹配、目录结构与编译逻辑的冲突上,下面分几种情况帮你排查和解决:

1. 文件名大小写不匹配(最可能的原因)

在类Unix系统(比如你使用的macOS)中,文件系统是严格区分大小写的。你在index.js里的导入语句是:

import Myfetch from './Myfetch';

但你的实际模块文件是MyFetch(注意最后一个字母F为大写),这就导致Node.js或打包工具找不到对应的文件。

解决方法:

  • 要么调整导入语句,和文件名保持完全一致:
    import Myfetch from './MyFetch';
    
  • 要么把模块文件名改成Myfetch.js,让它和导入路径的大小写统一。

2. 编译脚本导致的文件缺失

看你package.json里的build脚本:

"build": "./node_modules/.bin/babel src --out-file index.js"

这个脚本只会把src目录下的代码编译后输出单个index.js文件到根目录,但你的MyFetch模块如果是放在src目录下,编译后它并没有被同步输出到根目录,这就导致根目录的index.js找不到同级的./Myfetch文件。

解决方法:
修改build脚本,把src目录下的所有文件都编译输出到根目录:

"build": "./node_modules/.bin/babel src --out-dir ."

这样编译后,src里的MyFetch.js也会被输出到根目录,和index.js同级,导入路径就能正确匹配了。

3. 缺少文件后缀(次要排查点)

确认你的模块文件是带.js后缀的MyFetch.js,而非无后缀的MyFetch。虽然多数打包工具会自动补全.js后缀,但显式加上后缀能避免很多路径解析歧义,比如把导入语句改成:

import Myfetch from './MyFetch.js';

按照上面的步骤调整后,应该就能解决模块找不到的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:40:49