标签: angular-workspace-configuration

Angular Workspace/Monorepo,forRoot 给我错误。“‘forRoot’的值无法静态确定,因为它是外部声明。”

我有一个名为 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)

angular angular-library angular-workspace-configuration

6
推荐指数
1
解决办法
2787
查看次数

使用具体(旧)Angular 版本创建 NX Monorepo

生成 NX Monorepo 工作空间 ( https://nx.dev/ ) 的步骤很简单:

  1. npx create-nx-workspace(创建空工作区)
  2. yarn add -D @nrwl/angular (添加 nx 的 Angular 插件/原理图)
  3. nx生成worspace-schematic:application(将Angular应用程序添加到NX工作区)

您将得到一个 NX 工作区,其中包含 Angular(最新版本)应用程序。但是,如果我想创建其中包含 Angular 8.0 应用程序的 NX 工作区该怎么办?创建其中包含具体 Angular 版本的 NX 工作区的正确方法是什么?

monorepo nrwl nrwl-nx angular-workspace-configuration

2
推荐指数
1
解决办法
4784
查看次数