有没有一种方法可以使用不同的环境配置文件来为基于Ionic Framework的Cordova应用程序进行开发和生产设置
Is there a way to use different environment profiles for development and production setting for Cordova app based on Ionic Framework
就像我们在Spring Framework中有很多变体来设置编译/运行/测试时环境,并使用它来绑定不同的属性文件和设置。除了这一个环境/配置文件变量之外,我们不需要更改任何内容,以便能够为应用程序进行正确的设置。
更特别的是:
我有两个文件:settings.dev.js和settings.prod.js
设置.prod.js:
var API_PATH = "http://example.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
设置.dev.js:
var API_PATH = "http://localhost.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
以及Ionic Framework应用程序,其中的服务正在使用此设置。例如
me: $resource(API_PATH + '/my/profile', {}, {...}
等等,在许多服务和控制器中,也许还有指令。。。
有什么方法可以使用吗
- settings.dev.js在开发和
- settings.prod.js用于部署发布应用程序
我只是为这个问题开发了一个解决方案。
-
创建一个grunt任务(或等效的构建工具),将
settings.<env>.js
文件复制到settings.js
文件。copy: { dev: { src: 'settings.dev.js', dest: 'settings.js' }, prod: { src: 'settings.prod.js', dest: 'settings.js' } }, grunt.registerTask('dev', [ 'copy:development' ]); grunt.registerTask('prod', [ 'copy:prod' ]);
-
在html或js文件中包含
settings.js
。 -
将
settings.js
添加到.gitignore
文件中,这样特定于环境的文件就不会影响其他文件。
作为可以使用Grunt的方法之一。
grunt.registerTask('dev', ['processhtml:dev']);
grunt.registerTask('default', ['processhtml:prod', ...]);
在html:中
<!-- build:remove:dev -->
<script src="/your/path/settings.prod.js"></script>
<!-- /build -->
<!-- build:remove:prod -->
<script src="/your/path/settings.dev.js"></script>
<!-- /build -->
这意味着dev
将删除<script src="/your/path/settings.prod.js"></script>
,prod
将删除<script src="/your/path/settings.dev.js"></script>
。
现在,使用grunt
命令构建一个生产环境,并构建一个开发环境。使用CCD_ 11。
还有一件事,你可以使用grunt contrib watch来自动化开发构建:
watch: {
html: {
files: ['www/*.html'],
tasks: ['dev']
}
}
希望它能帮助到别人。
我使用了这个包,它运行得很好:
https://www.npmjs.com/package/gulp-ng-config
只要你有一个任务在你的minify/browsrify/etc之前运行,你就可以把它包含在你的单个编译JS文件中。
为了加载配置文件,您可以在HTML中添加带有脚本URL的脚本标记。
<script src="/your/path/settings.prod.js"></script>
或
<script src="/your/path/settings.dev.js"></script>
然后可以像往常一样定义变量。
- 使用Scala Play Framework视图中的键检索映射值
- Joomla Gantry Framework ie8 LESS/CSS
- cordova-2.0.0.js不适用于使用phonegap的android
- ReferenceError: cordova is not defined @ng-cordova.min.js:7
- cordova:例外:财产'requestFileSystem'的[对象全局]不是函数
- 在cordova android应用程序中连接数据库
- Cordova RSS馈送的链接不会在外部浏览器中打开
- 使用filetransfer/cordova插件上传一些文件
- Cordova ng路线工作不正常
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 如何将tesseract OCR与Cordova/Phonegap应用程序集成
- 无法在Cordova 4.0 ios中将jpg/jpeg图像转换为Base64
- 使用Tabris-js,并尝试使用cordova文件和文件传输插件
- Cordova Facebook登录集成cordovaOauth
- "可以't查找变量:cordova”;
- AngularJs Cordova安卓应用程序中输入的4位密码PIN验证
- 有没有一种方法可以直接从cordova获得滚动位置
- Ionic Framework 中的 Cordova 插件媒体兼容性问题
- 有没有一种方法可以使用不同的环境配置文件来为基于Ionic Framework的Cordova应用程序进行开发和生产设置
- 在iOS Cordova Framework中包含我的custom.js