Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gruntjs/angularjs-可选开发配置?_Angularjs_Gruntjs_Typescript - Fatal编程技术网

gruntjs/angularjs-可选开发配置?

gruntjs/angularjs-可选开发配置?,angularjs,gruntjs,typescript,Angularjs,Gruntjs,Typescript,与大多数js web应用程序一样,我们有一个config.js文件,其中包含有关应用程序的全局配置信息、基本api URL等。这些价值观在当地开发和生产中往往不同 我已经研究了如下答案:,以及grunt replace等创建动态配置文件的方法 我的问题是“开发”部分因开发人员而异,我们都需要一个版本的API设置,这样基础API URL就会有所不同。我希望允许每个开发人员以一种不需要他们将信息提交给git repo的方式覆盖配置中的特定变量(我同意这不是最佳实践,所有内容都应该在repo中,但对于

与大多数js web应用程序一样,我们有一个config.js文件,其中包含有关应用程序的全局配置信息、基本api URL等。这些价值观在当地开发和生产中往往不同

我已经研究了如下答案:,以及grunt replace等创建动态配置文件的方法

我的问题是“开发”部分因开发人员而异,我们都需要一个版本的API设置,这样基础API URL就会有所不同。我希望允许每个开发人员以一种不需要他们将信息提交给git repo的方式覆盖配置中的特定变量(我同意这不是最佳实践,所有内容都应该在repo中,但对于这个项目,这只是1/2个变量,我可以忽略它)


关于如何实现这个设置有什么想法吗?

在我的项目中,我们使用不同的配置文件(基本上是带有JS对象的文件)。因此,每个开发人员都有自己的
app/configs/developer/config.js
文件,该文件不在源代码管理中,因此每个开发人员都有自己的设置。默认情况下,Project使用指向app/scripts/config.js的链接,该文件只是指向开发者配置文件的软链接。然而,也有
app/configs/staging/config.js
app/configs/production/config.js
文件,它们在使用gruntjj构建项目时被替换。这些配置只是复制到构建解决方案,而不是软链接文件

我希望这有道理。

您可以使用。我会在一个文件中包含生产(和开发服务器等)值,比如
env.json
。您可以使用grunt查找可选文件,例如
overrides.json
developer.json
,这将扩展/覆盖
env.json
中的值

var envFile = require('./env.json');
您可以使用
grunt.option
为grunt创建命令行选项,例如
var env=grunt.option('env')|未定义,可用于关闭覆盖

您可以使用
fs.existsSync
从可选文件获取数据:

var fs = require('fs');
var developerFile;
if (fs.existsSync('./developer.json')) {
  developerFile = require('./developer.json');
}
定义grunt预处理上下文的最简单方法是使用
developer.json
文件(如果有),或者使用
env.json
文件(如果没有):

context: developerFile ? developerFile : envFile;

这要求开发人员文件是完整的。另一种方法是使用developerFile中的选项(如果有)扩展envFile。

我喜欢这样。你能详述一些细节吗?如何使用grunt查找可选文件?因为那是我无法解决的问题。