AngularJS支持多种环境
AngularJS support multiple environments
在 AngularJS 应用程序中支持多个环境(开发、暂存、生产,ci)的常规方法是什么?
举一个更具体的例子,如何在某处的配置中配置(可能需要额外的工具)服务器端点,然后读取该服务器端点以供其他地方使用,例如像 [=11= 这样的调用]?
您可以定义一个 Angular 常量,将其注入所需的 service/controller 并引用特定于环境的值
angular.module('YourApp')
.constant('AppConstants', {
'SERVER_ENDPOINT': 'http://api.example.com',
'SHOW_DEBUG': true
});
你会像这样使用
$http.get(AppConstants.SERVER_ENDPOINT + '/rest/api/route')
如果您使用 Grunt 或 Gulp,有一个很好的任务可以让您根据环境创建 Angular 常量文件。
Grunt 示例:
ngconstant: {
options: {
name: 'config',
},
dev: {
options: {
dest: '<%= yeoman.app %>/scripts/config.js'
},
constants: {
ENV: {
FB_APP_ID: '123456'
}
}
},
prod: {
options: {
dest: '<%= yeoman.dist %>/scripts/config.js'
},
constants: {
ENV: {
FB_APP_ID: '98765'
}
}
}
}
创建应用程序的生产和开发版本的任务分别调用 ngconstant:prod
和 ngconstant:dev
在 AngularJS 应用程序中支持多个环境(开发、暂存、生产,ci)的常规方法是什么?
举一个更具体的例子,如何在某处的配置中配置(可能需要额外的工具)服务器端点,然后读取该服务器端点以供其他地方使用,例如像 [=11= 这样的调用]?
您可以定义一个 Angular 常量,将其注入所需的 service/controller 并引用特定于环境的值
angular.module('YourApp')
.constant('AppConstants', {
'SERVER_ENDPOINT': 'http://api.example.com',
'SHOW_DEBUG': true
});
你会像这样使用
$http.get(AppConstants.SERVER_ENDPOINT + '/rest/api/route')
如果您使用 Grunt 或 Gulp,有一个很好的任务可以让您根据环境创建 Angular 常量文件。
Grunt 示例:
ngconstant: {
options: {
name: 'config',
},
dev: {
options: {
dest: '<%= yeoman.app %>/scripts/config.js'
},
constants: {
ENV: {
FB_APP_ID: '123456'
}
}
},
prod: {
options: {
dest: '<%= yeoman.dist %>/scripts/config.js'
},
constants: {
ENV: {
FB_APP_ID: '98765'
}
}
}
}
创建应用程序的生产和开发版本的任务分别调用 ngconstant:prod
和 ngconstant:dev