2023-02-07 uni-app 如何不通过 HBuilder X 来配置 uniCloud
最近在折腾 uniCloud。uniCloud 提供的云函数等功能可以说是非常好用,但唯一的问题是要通过 HBuilder X 打包才能使用,如果通过 cli 打包就会因为缺少 uniCloud 配置而无法使用云函数等功能,经过一番研究,发现可以通过配置环境变量来解决这个问题。
在 @dcloudio\vue-cli-plugin-uni\lib\env.js
文件中可以看到 uniCloud
的初始化是通过 UNI_CLOUD_PROVIDER
和 UNI_CLOUD_SPACES
环境变量来进行的,所以可以考虑通过手动配置这两个环境变量来配置 uniCloud 。
经过我个人的实验,手动配置 UNI_CLOUD_SPACES
并不生效,手动配置 UNI_CLOUD_PROVIDER
生效,所以只需要配置 UNI_CLOUD_PROVIDER
即可。
UNI_CLOUD_PROVIDER
的内容如下,是 json 格式的字符串。参考文档:https://uni-app.dcloud.net.cn/uniCloud/concepts/space.html#multi-space
1 | [ |
由于 vue 的限制,在 .env
中只能配置 VUE_APP_
开头的环境变量,所以这里需要在 vue.config.js
中手动注入环境变量。参考文档:https://uni-app.dcloud.net.cn/tutorial/env.html#vue-config-js
1 | // vue.config.js |
当然,在生产实践中是绝不推荐把spaceId
、clientSecret
等重要信息写到源代码文件里的,这里可以通过再读取一次环境变量来获取这些信息,例如
1 | // vue.config.js |
这样就可以不依赖 HBuilder X 来打包,且依旧能使用 uniCloud。
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/d2c0a480.html
版权声明:转载请注明出处!