我正在整理一个AngularJS + Typescript + VisualStudio项目。我希望有一个配置文件,其中包含控制不同设置的常量(例如,REST API URL和环境名称)。这通常是如何在这种项目中完成的?
我可能有一个名为app.dev.config.ts
的开发配置文件,如下所示:
module app.config {
export class ConfigSettings {
static environment(): string { return "dev"; }
static dataApiBaseUrl(): string { return "DevDataService"; }
}
}
和app.prod.config.ts
这样:
module app.config {
export class ConfigSettings {
static environment(): string { return "prd"; }
static dataApiBaseUrl(): string { return "PrdDataService"; }
}
}
当然这实际上并不起作用,因为这两个类具有相同的名称。
我需要以某种方式设置它,以便我在构建服务器中只构建一次,然后可以将其部署到固定的(3)环境中。也许这意味着当我将其部署到某个环境时,我还有一个额外的步骤,我重命名配置文件。这就是我为C#项目及其配置文件所做的工作。
我在网上搜索过这个,但我能找到的只是对tsconfig.json
个文件的引用。
答案 0 :(得分:2)
我找到了解决方案。
1)我在项目中将env.dev.ts
和env.prd.ts
等单独的配置文件放在一起。他们的内容如下:
angular.module('compdb') //module name matches my main module
.constant('env', 'prd')
.constant('key1', 'prd value 1')
.constant('key2', 'prd value 2');
2)Visual Studio将这些转换为env.dev.js
等
3)在我的gulp文件中,我将env.*.js
文件复制到我的输出目录。
4)在我的Index.cshtml
文件中,我添加了env.js
。我在创建compdb
角度模块
5)当我将代码部署到任何环境时,我将相应的配置文件(例如env.prd.js
)重命名为env.js