Ionic2 如何使用Ionic 2为PWA和本机应用程序部署不同版本的index.html

Ionic2 如何使用Ionic 2为PWA和本机应用程序部署不同版本的index.html,ionic2,build-process,progressive-web-apps,Ionic2,Build Process,Progressive Web Apps,我们的PWA生活在这里:我们也有具有相同代码库的本地应用程序 然而,我们的目标不是Cordova浏览器平台(因为它似乎没有得到官方支持,我看不出它增加了什么好处),因此我们必须为PWA添加与本机应用程序版本稍有不同的代码。例如,在PWA中,我们使用纯谷歌分析解决方案,该解决方案需要index.html中包含两行javascript 对于本机版本,我们使用Cordova GA插件,因此这不是必需的。在PWA中,我们不需要链接到exmaple的Cordova.js和Vendor.js(它们会出现40

我们的PWA生活在这里:我们也有具有相同代码库的本地应用程序

然而,我们的目标不是Cordova浏览器平台(因为它似乎没有得到官方支持,我看不出它增加了什么好处),因此我们必须为PWA添加与本机应用程序版本稍有不同的代码。例如,在PWA中,我们使用纯谷歌分析解决方案,该解决方案需要index.html中包含两行javascript

对于本机版本,我们使用Cordova GA插件,因此这不是必需的。在PWA中,我们不需要链接到exmaple的Cordova.js和Vendor.js(它们会出现404错误)。在我们的原生应用程序中

目前我正在手动编辑(恶心)输出文件夹,然后再上传到Azure用于PWA


是否有一些方法可以编辑Ionic构建过程,以便我可以拥有两个版本的索引,它可以根据构建类型获取输出文件夹所需的版本,或者它可以在构建时修改html文件?

当前的Ionic构建工具本身不支持这一点

您可以只使用两个版本的index.html和一个小脚本在它们之间交换并构建这两个版本


这也是使用“完整”CI构建工具可以实现的。既然您提到Azure,您就可以使用Visual Studio团队服务。npm可以执行现有任务(安装ionic、运行PWA构建)和运行命令/PowerShell脚本。通过设置一个“代理”虚拟机来构建你的应用程序(节点、爱奥尼亚、安卓工作室等),然后从那里构建你的构建过程,可能会更容易。我使用
gulp preprocess
根据构建平台更新index.html。预处理的思想是在ionic Service/build之前生成一个target index.html,其中包含所选模式(pwa或native)所需的确切声明。关于这篇文章的更多细节

好的,谢谢Rory。我目前在GIT中使用了两个不同的分支,但我更愿意将其自动化。使用VSTS的完整CI构建已经在我的列表中列出了一段时间-我必须尽快开始