在我们的 ci 管道中,我尝试使用 pnpm 而不是 npm 作为包管理器,但postinstall用于编译 ivy 不兼容库的脚本未按预期运行。
控制台输出显示安装后脚本已执行,但随后该pnpm install过程完成但未执行 ngcc。
devDependencies:
+ @angular-devkit/build-angular 0.1001.7
+ @angular-devkit/build-ng-packagr 0.1001.7
+ @angular/cli 10.1.7
+ @angular/compiler-cli 10.2.1
+ @angular/language-service 10.2.1
+ @ngxs/devtools-plugin 3.7.1
+ @nrwl/cli 10.4.4
+ @nrwl/cypress 10.3.1
+ @nrwl/jest 10.3.1
+ @nrwl/workspace 10.3.1
+ @types/jest 26.0.8
+ @types/leaflet 1.5.19
+ @types/node 14.0.27
+ codelyzer 5.2.2
+ cypress 4.12.1
+ cypress-localstorage-commands 1.3.0
+ dotenv 8.2.0
+ eslint 7.3.1
+ husky 4.3.5
+ jest 26.2.2
+ jest-preset-angular 8.3.1 …Run Code Online (Sandbox Code Playgroud) 我有一个已发布的库,其中包含一个在其模板中使用 [routerLink] 的组件。在我的应用程序中安装库后,我收到错误NullInjectorError: R3InjectorError(AppModule)[Router -> Router -> Router]: NullInjectorError: No provider for Router!
在库中的模块中,RouterModule 被导入,如下所示:
@NgModule({
declarations: [
Component
],
exports: [
Component
],
imports: [
CommonModule,
RouterModule,
TranslateModule
]
})
export class LibWithComponentModule {
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,RouterModule 配置如下:
const routes: Routes = [{
path: '',
component: RootComponent
}];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)
该app.module.ts如下所示:
declarations: [
AppComponent,
RootComponent
],
imports: [
BrowserModule,
AppRoutingModule,
LibWithComponentModule
],
providers: [],
bootstrap: [AppComponent]
})
export …Run Code Online (Sandbox Code Playgroud)