可以使用 Angular 的 InjectionToken 和 provideIn 属性来解决这个问题。例如,我们有一个服务 MyService,使用 InjectionToken 对象来提供依赖项,然后在 app.module.ts 中使用 provideIn 属性来指定服务的提供者。
import { Injectable, InjectionToken } from '@angular/core';
export const MY_TOKEN = new InjectionToken('MyService');
@Injectable({
providedIn: 'root',
})
export class MyService {
// ...
}
在 app.module.ts 中,可以使用 provideIn 属性来指定服务的提供者:
@NgModule({
providers: [
{
provide: MY_TOKEN,
useValue: {
// ...
},
provideIn: 'root',
},
],
})
export class AppModule {}
这样就可以对 Angular 服务进行依赖注入,同时也可以与 Webpack 协同工作。