You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用import替代require时遇模块未找到问题求助

解决isomorphic-fetch的ES6 Import用法问题

嘿,我之前也踩过这个坑!先给你揪出最明显的问题——你代码里的包名拼写错了!你写的import 'isomporphic-fetch'少了一个字母r,正确的包名是isomorphic-fetch,这就是导致“Can't resolve”错误的直接原因!

接下来说说isomorphic-fetch的正确导入姿势:

  • 这个模块属于副作用模块,导入它就会自动给全局环境挂载fetch方法,所以不需要导入任何变量,直接写:
    import 'isomorphic-fetch';
    
    这和你用require('isomorphic-fetch')的效果完全一致,导入后就能直接在代码里用fetch了。
  • 如果你非要用命名导入的方式(其实没必要),也可以这么写,但模块本身没有导出有用的变量:
    import * as fetchModule from 'isomorphic-fetch';
    

再补充几个可能踩坑的细节:

  • 确认已经正确安装包:npm install isomorphic-fetch --save(别漏了--save,不然生产环境会找不到依赖)
  • 如果用TypeScript开发,记得安装对应的类型声明:npm install @types/isomorphic-fetch --save-dev
  • 检查打包工具(比如Webpack)的配置,确保resolve.extensions里包含.js.mjs这类后缀,避免因为扩展名匹配问题找不到模块

对比你提到的es6-promise,它的模块结构是导出了包含polyfill()方法的对象,所以可以导入后调用方法;而isomorphic-fetch只需要执行导入的副作用就够了,不需要额外调用任何方法。

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

火山引擎 最新活动