序:最近一个项目试用ice.js 3.0版。记录开发过程中遇到的一些问题,帮助遇到相同问题的同学过坑。
环境变量配置baseURL不生效
问题描述:
如下,根据官方文档配置baseURL后,不生效。
分析:
- 把环境变量改为字符串,生效,说明不是请求这边的配置问题,是环境变量的配置问题
- 怀疑环境变量文件的问题,ice.js的环境变量优先级依次为:
js
`.env`
`.env.local`
`.env.${mode}`
`.env.${mode}.local`
lua
请求配置的例子中,文件为.env.local, .env.prod。 于是怀疑为文件名的问题。
改为:.env,.env.local,不生效。
改为:.env.development,.env.production,依然不生效。
- 因为咱现在是3.0版本,那有没有可能一些文档说明省略了,按经验启动脚本是要指定环境变量配置文件的。
css
翻看老文档,果然发现需要在启动脚本中设置 --mode dev 这样的配置
兴冲冲一顿配置猛如虎,然而再次滑铁卢
-
仔细查看文档,发现有句说明 "默认情况下环境变量是不能在运行时访问的,如若需要在浏览器环境中访问,可以在设置环境变量时增加前缀:
ICE_
"恍然大悟,好嘛,这请求篇章的例子里过于潦草吖。
于是把所有环境文件中的BASEURL加了ICE_前缀
再次尝试,成功!
js
export const requestConfig = defineRequestConfig(() => {
return {
baseURL: process.env.ICE_BASEURL
}
});