我在Angular应用程序中实现了一个模拟后端。这个模拟后端用于端到端测试。
我使用工厂创建实际的http后端服务或模拟后端服务。基本上它检查这是否是生产版本,如果是,它将返回http后端服务,否则返回模拟后端服务。
简化此工厂功能如下所示:
import {
RequestMethod,
Http,
XHRBackend,
BaseRequestOptions,
RequestOptions,
Response,
ResponseOptions
} from "@angular/http";
import { MockBackend, MockConnection } from "@angular/http/testing";
function backendFactory(mockBackend: MockBackend,
options: BaseRequestOptions,
realBackend: XHRBackend) {
if(!useMockBackend) {
console.log("Configuring real HTTP backend...");
return new Http(realBackend, options);
}
console.log("Configuring mock HTTP backend...");
// Listen to incoming requests and send mock data
return new Http(mockBackend, options);
}
当我在生产版本中运行此代码时,出现以下错误:Uncaught Error: Cannot find module "@angular/http/testing/src/mock_backend"
我猜测Angular会删除生产版本中的某些模块以减少网络/应用程序的大小。但是我无法找到有关此过程的更多信息。有谁知道这是否可以禁用?
环境:
答案 0 :(得分:1)
尝试将角度版本升级到4.1.2。这个问题固定在angular> 4.1.2。
更多信息 https://github.com/angular/angular/issues/15521#issuecomment-290118657