有没有一种方法可以使用不同的环境配置文件来为基于Ionic Framework的Cordova应用程序进行开发和生产设置

Is there a way to use different environment profiles for development and production setting for Cordova app based on Ionic Framework

本文关键字:Framework Cordova Ionic 应用程序 设置 开发 一种 方法 可以使 环境 配置文件      更新时间:2023-09-26

就像我们在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用于部署发布应用程序

我只是为这个问题开发了一个解决方案。

  1. 创建一个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'
    ]);
    
  2. 在html或js文件中包含settings.js

  3. 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>

然后可以像往常一样定义变量。