''environment.ts'不在'rootDir'Angular库构建错误中

问题描述 投票:-1回答:1

我正在尝试从Angular 9库中读取环境变量,但是在构建库时出现错误

这里是实现

从'projects / falcon-core / src / lib / view-models / environment-view-model'中导入{EnvironmentViewModel};

class EnvironmentImpl implements EnvironmentViewModel {
  production = false;
  openID = {
    authority: "https://dev-816623.okta.com/oauth2/XXXXXXXXXXXXX",
    client_id: "XXXXXXXXXXXXX",
    redirect_uri: "https://localhost:4200/auth-callback",
    post_logout_redirect_uri: "https://localhost:4200",
    response_type: "code",
    scope : "openid profile email"
  }
}

export const environment = new EnvironmentImpl();

查看模型

export abstract class EnvironmentViewModel {
    abstract readonly production: boolean;
    abstract readonly openID: IOpenIdViewModel;
}

export declare interface IOpenIdViewModel {
    authority?: string;
    client_id?: string;
    redirect_uri?: string;
    response_type?: string;
    scope?: string;
    silent_redirect_uri?: string;
    post_logout_redirect_uri?: string;
    filterProtocolClaims?: boolean
    loadUserInfo?: boolean
    automaticSilentRenew?: boolean;
    monitorSession?: boolean;
    accessTokenExpiringNotificationTime?: number;
    checkSessionInterval?: number;
    silentRequestTimeout?: number;
}

在模块中

import { environment } from 'src/environments/environment';
 providers: [
    { provide: EnvironmentViewModel, useValue: environment }
  ]

tsconfig.lib.json

   {
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "outDir": "../../out-tsc/lib",
    "target": "es2015",
    "declaration": true,
    "inlineSources": true,
    "types": [],
    "lib": [
      "dom",
      "es2018"
    ]
  },
  "angularCompilerOptions": {
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "enableResourceInlining": true
  },
  "includes": ["../../src/environments/environment.ts"],
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
      "@falcon/core": [
        "dist/@falcon-ng/core"
      ]
    }
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}

保持收到错误为>]

ERROR: projects/falcon-core/src/lib/falcon-core.module.ts:28:29 - error TS6059: File '/Users/macbook/Projects/project-falcon/src/environments/environment.ts' is not under 'rootDir' '/Users/macbook/Projects/project-falcon/projects/falcon-core/src'. 'rootDir' is expected to contain all source files.

28 import { environment } from 'src/environments/environment';

参考https://github.com/nrwl/nx/issues/208

我正在尝试从Angular 9库中读取环境变量,但是在构建库时出现错误,这是从'projects / ...中导入实现{EnvironmentViewModel}。

angular typescript angular-module angular-library
1个回答
0
投票

找到更好的解决方案

库模块

© www.soinside.com 2019 - 2024. All rights reserved.