我正在开发Angular(ngx- *)NPM软件包。我已经正确编译了它,并正在使用npm link
该服务具有以下构造函数以注入HttpClient和设置。
已更新。
我的服务
constructor(private http: HttpClient, @Inject('configs') configs: ImyConfigs) {
MyService.Module
我在模块中具有root权限
@NgModule({
declarations: [
],
imports: [
CommonModule,
// note that I am not importing HttpClientModule
// My understanding is that if I do I will get duplicate issues?
],
exports: [],
providers: []
})
export class MyModule {
static forRoot(configs?: ImyConfigs): ModuleWithProviders {
return {
ngModule: MyModule,
providers: [MyService, { provide: 'configs', useValue: configs }]
};
}
App.module
现在在我的主项目(使用此模块的新Angular项目)中,我想使用此服务。
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
MyModule.forRoot(MYCONFIG_CONST)
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我一直收到以下错误:
ERROR Error: StaticInjectorError(AppModule)[MyService -> HttpClient]:
StaticInjectorError(Platform: core)[MyService -> HttpClient]:
NullInjectorError: No provider for HttpClient!
在将HttpClient注入myService方面我做错了什么?
编辑:我将在下面回答。
答案 0 :(得分:0)
ng serve --preserve-symlinks
解决了问题。
这是一个旧项目,它已经被添加到package.json中,我只是忘了它-持续了很长时间。