有没有办法使用不同的环境配置文件进行基于Ionic Framework的Cordova应用程序的开发和生产设置

Ale*_*nts 3 javascript cordova gruntjs hybrid-mobile-app ionic-framework

就像我们在Spring Framework中有很多变体来设置编译/运行/测试时环境,并使用它来设置不同的属性文件.除了这个环境/配置文件变量之外,我们不会更改任何内容,以便能够对app进行适当的设置.

更具体地说:

我有两个文件:settings.dev.js和settings.prod.js

settings.prod.js:

var API_PATH = "http://example.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
Run Code Online (Sandbox Code Playgroud)

settings.dev.js:

var API_PATH = "http://localhost.com/api"
var OTHER_INPORTANT_SETTINGS = {....}
Run Code Online (Sandbox Code Playgroud)

和一个Ionic Framework应用程序,其中服务正在使用此设置.例如

me: $resource(API_PATH + '/my/profile', {}, {...}
Run Code Online (Sandbox Code Playgroud)

在许多服务和控制器以及指令......等等......

有没有办法使用

  • 在开发过程中的settings.dev.js
  • settings.prod.js用于部署发布应用程序.

小智 5

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

  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'
    ]);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 包含settings.js在您的html或js文件中.

  3. 添加settings.js到您的.gitignore文件,以便您的环境特定文件不会影响其他人.