需求:
测试环境、开发环境及生产环境所请求的api域名不同,在不修改源代码的情况下,通过命令自动实现根据不同的环境使用不同的api域名。
环境:
Ext JS: 6.2.0 GPL
操作系统: Win 10
Sencha Cmd:v6.2.2.36
实现:
一、build编译的三种形式:production 、 testing 、 package
testing:构建一个处于测试阶段的应用程序,所有JavaScript脚本文件都被原样复制到应用程序中,不对这些脚本文件进行压缩,便于开发者对其进行调试。
package:构建一个本地可运行的应用程序,开发者可以不使用web服务器,而是从文件系统中直接打开该应用程序
production:构建一个需要使用Web服务器来运行的应用程序,支持使用各种设备来访问该应用程序,同时该应用程序也是一个可离线使用的应用程序
native: 首先构建一个可以在文件系统中直接打开的应用程序,然后将其打包成一个可以在本机的Web服务器中运行的应用程序。
如下为对应的命令:
>sencha app build production //打包手机端,电脑端都能用的形式
>sencha app build testing //打包测试版
>sencha app build package //打包到手机端
>sencha package run package.json //主要是生成Android或iphone的APK
>sencha app build -e native
二、配置app.json
打开程序根目录下的app.json文件,你可以工到对应的testing,development,production对应的对象。在里面分别为设置相同的对象或变量名称。在这里,我设置为apiConfig。
三、在程序内使用
在程序中,通过Ext.manifest.apiConfig就可以使用配置的变量或对象了。当使用不同的打包命令打包时,该变量的值对应于app.json文件里配置的值。