在实际项目中,我们常遇到后端IP更新,或者服务器地址更新的情况,这时候就需要前端同步更新baseURL。
我们可以利用public里面的文件不会被构建的特性,将baseURL放在public文件夹里面。
第一 公共管理baseURL
在你的public下面新建一个js文件(例如我的,是global.js)里面写window.baseURL = “你的baseURL”;
第二 引入baseURL
在你的index.html里面引入此js文件
请注意此处的src路径会因为你的项目结构有所区别,就像我这个路径“./global.js”,项目在构建前路径是错误的,是找不到的。
**
你可以理解成,index.html是构建之后才会生效的文件,所以我们在src引入的时候,只需要考虑构建之后的项目结构(如图),所以我此处写“./global.js”是没有问题的。
**
第三 完毕
到这一步大部分人都可以了,如果没成功,跟着我排除一下其它问题。
问题一 dist结构和网上大部分博主不一致
如果你的项目是基于某个脚手架模板进行二次开发,那么你可能需要仔细了解一下这个脚手架的使用文档,目录结构,以vant-template模板举例,vite.config.ts里面的build决定了你构建之后是怎样的项目结构。(这是我修改之后的,我比较习惯这种结构)
问题二 类型“Window & typeof globalThis”上不存在属性“xxxx”。
好了,这就是ts类型报错而已,要知道ts经常强制让你声明变量类型,解决方案也究极简单,根目录下面新建一个xxxxxx.d.ts(比如我就是global.d.ts)
写入如上代码,声明类型,这个问题就解决了。