我有一个名为 Themex 的库。
//envInjector.ts
import {InjectionToken} from "@angular/core";
export const ENVIRONMENT = new InjectionToken<{[key: string]: any}>('ENVIRONMENT');
//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
}
]
};
}
}
该库被导入到同一角度工作空间内的角度项目中。
import {ThemexModule} from "themex";
如果我按照上面给出的方式导入它,我会收到错误消息。
“'forRoot' 的值不能静态确定,因为它是一个外部声明。”
但是,如果我按照下面给出的方式导入它,一切似乎都可以正常工作。
import {ThemexModule} from "../../../themex/src/lib/themex.module";
我在用着
Angular CLI: 12.0.5
Node: 14.16.1
所有的错误都是在我做ng serve. 我没有尝试构建。
