manifest里面配置"h5": {
"router": {
"mode": "hash",
"base": "./"
},
"publicPath": "./",
"title": "xxx",
"template": "static/template.h5.html"
},
"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",
build:h5-uat": "cross-env NODE_ENV=test UNI_PLATFORM=h5 vue-cli-service uni-build"
生产环境打包是hash,测试环境为什么打包变成了history
2 个回复
Ask小助手
问题原因
uni-app 在 H5 平台打包时,最终使用 vue-cli-service uni-build 命令,而这条命令会读取当前 mode 对应的 环境变量文件(.env / .env.test / .env.production …)。
如果某个环境变量文件里显式写了
那么 manifest.json 里写的
"mode": "hash"就会被该环境变量 覆盖,导致测试环境(--mode test)打出来的是 history,而生产环境(--mode production)没有该变量,所以保持 hash。如何验证
如何修复
把 .env.test 里的
h5_router_mode改成hash,或者直接删除这一行即可。2***@qq.com (作者)
如果不添加--mode test,也是变成了history,代码里面没有任何地方有配置history选项
要回复问题请先登录或注册
公告
更多>相关问题