Angular 7环境变量期望字符串文字

时间:2019-03-13 19:38:51

标签: angular typescript

我希望根据文档configuring-application-environment保存在environment.ts和envornment.prod.ts中的暂存/生产路径。我有一个要访问的文件的相对路径,如果我在以下文件中键入它,则可以正常使用:import json_data from '../../folder/file.json'当我尝试使用环境文件中的相同路径时,出现错误TS1141:预期为字符串文字。我可以console.log(environment.path),但得到的路径没有引号../../folder/file.json;

我尝试使用.toString()和 `${environment.path}`,也尝试了转义',以便值显示相同的'../../folder/file.json'

在声明const url: String = environment.path时,我还尝试将其值设置为字符串。我正在模拟数据.ts文件中使用此值,并用于生成应用程序所需的数据。

environment.ts

export const environment = {
  production: false,
  all_hosts_url: '\'../../nodeServer/s/output/hosts.json\'',
  connections_url: '../assets/data/connections.json',
  DOMAINS_URL: '../assets/data/domains.json'
};

mock-data.ts

import { environment} from '../environments/environment';


const _all_hosts_url: String = environment.all_hosts_url;
console.log(_all_hosts_url);


 import json_data from all_hosts_url;

1 个答案:

答案 0 :(得分:2)

无法导入变量中定义的模块。这就是为什么它解释字符串标记的原因。

不是动态加载模块,而是加载可能的模块并使用条件来使用给定环境所需的特定数据。

import { environment} from '../environments/environment';
import dev from 'path/to/dev/file';
import prod from 'path/to/prod/file';

const json_data = environment.production ? prod : dev;