Ionic build中--prod与--release参数的区别是什么?
Ionic build 中 --prod 和 --release 参数的区别
刚好之前折腾Ionic打包的时候特意研究过这俩参数,给你掰扯清楚它们的核心差异:
1. --prod:Ionic 前端层面的生产优化
这是Ionic CLI 专属的参数,和底层的原生平台(Android/iOS)无关,专门用来处理前端代码的生产环境优化:
- 针对Angular(或Vue/React,取决于你的Ionic项目框架)开启生产模式编译:比如Angular的AOT编译,把模板提前转成JS,大幅提升App运行速度
- 对JS、CSS、HTML做压缩、混淆、Tree-shaking,移除未使用的代码,把构建产物体积压到最小
- 自动替换项目中的环境变量为生产环境配置(比如API地址从测试服切换到正式服)
- 不管你是构建Web版本还是原生App,只要加了
--prod,前端产物就会是经过极致优化的生产版本
2. --release:原生平台的发布模式构建
这个参数是Ionic 传递给底层 Cordova/Capacitor 的,本质是控制原生项目的构建模式:
- 对于Android:会生成可用于签名的APK/AAB包,同时开启原生代码的优化、混淆,关闭调试日志,完全符合Google Play的发布要求
- 对于iOS:生成适合提交App Store的归档包,关闭调试模式,开启原生编译优化
- 敲黑板:单独用
--release的话,前端代码还是开发环境的状态(未压缩、带调试信息),所以几乎不会有人单独用这个参数
3. 常见的组合用法
- 开发调试:直接用
ionic build,生成带调试信息、未压缩的前端代码,方便开发时调试 - 生成可发布的原生包:
ionic build --prod --release,这是最常用的组合——先做前端生产优化,再触发原生平台的发布构建,最终得到可以直接提交应用商店的成品包 - 单独生成Web生产包:
ionic build --prod,把优化后的前端产物打包到www文件夹,直接部署到Web服务器就行
从构建输出来看,你应该也能发现:用--prod构建后,www文件夹里的代码都是压缩混淆后的;而单独用--release的话,www里的代码和开发环境几乎没区别,只是原生项目切换到了发布模式而已。
内容的提问来源于stack exchange,提问作者Sensei James
相关产品推荐
相关产品推荐

