能否在uni-app中区分开发和生产环境

这个需求是来在于Vue的功能,Vue利用webpage可以明确区分开发环境和生产环境,具体区别还是看DevelopmentProduction

我的任务要求没有那么高,只是需要能够使用一个环境变量,区分开发环境和生产换环境中图片的使用,在开发时用本地静态文件,在生产时用服务器中的静态文件。

可惜我得到的结论是:在uni-app中目前是不能支持静态资源配置cdn的路径,以及区别dev和product环境使用。因为需要publicPath来实现为项目中的所有资源指定一个基础路径。通常是设置一个名为 ASSET_PATH的变量,但是可以在uni-app文档中的vue-config.js发现,对于publicPath 并不能支持,那么就没有办法来提供一个基础路径。

Feature Request自定义配置功能增强 #148 github中的uni-app的Issues中也提过类似的问题,其中排名第一的贡献者fxy060608,也表达了目前是不能实现该功能的。

但是也不是说就没有办法了,微信小程序文档中的素材管理,因为我不能进这个小程序的后台,所以我就没有进行后续的操作,但是它可以为开发者提供了腾讯云的”对象存储(COS)” 和 “内容分发网络(CDN)” 的产品功能。那么我们可以把本地当作当作开发环境,把云开放文件存储当作生成产环境。但是和webpack提供的开发和生产环境的差异小很多,相当于只能提供静态文件的差异。主要原因还是在于uni-app,提供的wepack功能太少了。

Ps: webpack是目前我见过最黑科技的工具,它居然支持在开发环境中“热插拔”,这个功能以我的认知会带来很多麻烦,真是脑洞大开。神奇~