Angular 7中提供服务别名会中断构建执行

问题描述 投票:0回答:1

我已经编写了服务MyService和它的模拟版本– MyServiceMock,用于在提供我的BE之前,提供并使用模拟服务的结果的单元测试。

我使用MyService作为MyServiceMock的别名,因此将来在BE准备就绪时,我将不必更改代码:

在我的服务模块中,我使用:

import { MyServiceMock as MyService } from './my-service/my-service-mock.service';

const providers: Array<Provider> = [
  MyService,

...

与我的组件中的相同:

import { MyServiceMock as MyService } from './my-service/my-service-mock.service';

...

 constructor(
   myServce: myService,

...

并且在ng serveng build上工作正常...直到我提供了构建服务。浏览器MyService未定义,发生运行时错误。但是请注意,当通过Angular ng serve投放时,所有效果都很好。并且ng build |中没有警告和错误。 ng build --prod构建过程。

下面的解决方案很简单,但是我希望对此做出任何解释。

谢谢!

angular angular-services angular-aot angular-builder
1个回答
0
投票

解决方案:

在服务模块中,我们按原样提供模拟服务,没有别名。而且我们仅在组件中使用别名:

import { MyServiceMock } from './my-service/my-service-mock.service';

const providers: Array<Provider> = [
  MyServiceMock,

...
© www.soinside.com 2019 - 2024. All rights reserved.