我有一个名为 Themex 的库。
//envInjector.ts
import {InjectionToken} from "@angular/core";
export const ENVIRONMENT = new InjectionToken<{[key: string]: any}>('ENVIRONMENT');
Run Code Online (Sandbox Code Playgroud)
//themex.module.ts
import {ENVIRONMENT} from "./envInjector";
@NgModule({
declarations: [
ThemexComponent,
ModalComponent,
UploadComponent,
AlertComponent,
],
imports: [
CommonModule
],
exports: [
ThemexComponent,
ModalComponent,
UploadComponent,
AlertComponent,
],
providers: []
})
export class ThemexModule {
static forRoot(config: {[key: string]: any}): ModuleWithProviders<any> {
return {
ngModule: ThemexModule,
providers: [
{
provide: ENVIRONMENT,
useValue: config
}
]
};
}
}
Run Code Online (Sandbox Code Playgroud)
该库被导入到同一角度工作空间内的角度项目中。
import {ThemexModule} from "themex";
Run Code Online (Sandbox Code Playgroud)
如果我按照上面给出的方式导入它,我会收到错误。
“‘forRoot’的值无法静态确定,因为它是外部声明。”
但是,如果我按照下面给出的方式导入它,一切似乎都有效。
import {ThemexModule} …Run Code Online (Sandbox Code Playgroud) 生成 NX Monorepo 工作空间 ( https://nx.dev/ ) 的步骤很简单:
您将得到一个 NX 工作区,其中包含 Angular(最新版本)应用程序。但是,如果我想创建其中包含 Angular 8.0 应用程序的 NX 工作区该怎么办?创建其中包含具体 Angular 版本的 NX 工作区的正确方法是什么?