Angular中http-in-memory-web-api报错:无法找到@angular/http模块
解决Angular编译时找不到@angular/http的问题
这个问题的根源很明确:你安装的angular-in-memory-web-api@0.5.0是为旧版Angular设计的,它依赖早已被官方弃用的@angular/http包,但你的项目应该使用的是Angular 6或更高版本——这些版本已经移除了@angular/http,改用@angular/common/http作为默认的HTTP客户端,所以编译时才会抛出找不到模块的错误。
下面给你两种解决方案,优先推荐第一种:
方案一:升级到适配新版Angular的内存API包
这是最稳妥的长期解决方案,官方已经把这个包迁移到Angular的官方命名空间下:
- 先卸载旧版包:
npm uninstall angular-in-memory-web-api - 安装新版的官方包:
npm install @angular/in-memory-web-api --save - 最后修改代码中的导入语句:
把原来的
替换成import { HttpInMemoryWebApiModule } from 'angular-in-memory-web-api';
同时确保你的数据服务类是基于import { HttpClientInMemoryWebApiModule } from '@angular/in-memory-web-api';HttpClient而非旧的Http来编写的。
方案二:安装弃用的@angular/http包(不推荐)
如果因为项目兼容性限制必须保留旧版的angular-in-memory-web-api,可以临时安装已弃用的@angular/http来解决编译错误:
npm install @angular/http --save
⚠️ 注意:这个包已经停止维护,后续Angular版本可能会彻底移除相关API,所以不建议长期使用这种方式。
内容的提问来源于stack exchange,提问作者Alexz
相关产品推荐
相关产品推荐

