在工作区库中使用Angular环境变量

时间:2018-08-06 07:24:16

标签: angular angular-cli angular6 angular-cli-v6

我正在使用workspaces概念的最新版本(> 6)。

CLI可以使用以下命令生成一个library项目:

"paths": {
      "env": ["src/environments"],
      "api": [
        "dist/api"
      ],
默认应用程序的

tsconfig.json就是这样

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { environment } from 'env';

@Injectable()
export class ApiService {
  constructor(private http: HttpClient) {}

  getApiUrl(){
    console.log("Hello Api Url"+environment.api_url)
}
}

之后,我像这样在api库中创建了一个名为ApiService的服务,但是它不起作用

ng build api

使用命令BUILD ERROR error TS6059: File 'ROOT_APP_PATH/src/environments/environment.ts' is not under 'rootDir' 'ROOT_APP_PATH\projects\api\src'. 'rootDir' is expected to contain all source files. 构建api库时返回错误:

print

请帮助解决此错误。

预先感谢。

2 个答案:

答案 0 :(得分:0)

您应该添加providerIn:

@Injectable({   提供:“ root” })

答案 1 :(得分:0)

默认情况下,将rootDir视为tsconfig.json的路径

  

它指定输入文件的根目录。仅用于控制   使用--outDir输出目录结构。

compiler options