Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lzb_79
uni-app
提交
7a96ac22
U
uni-app
项目概览
lzb_79
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7a96ac22
编写于
9月 08, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(h5): history mode
上级
8ea1aa04
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
42 addition
and
0 deletion
+42
-0
packages/uni-cli-shared/src/json/manifest.ts
packages/uni-cli-shared/src/json/manifest.ts
+7
-0
packages/uni-h5-vite/src/plugin/index.ts
packages/uni-h5-vite/src/plugin/index.ts
+35
-0
未找到文件。
packages/uni-cli-shared/src/json/manifest.ts
浏览文件 @
7a96ac22
...
...
@@ -52,3 +52,10 @@ export function getUniStatistics(inputDir: string, platform: UniApp.PLATFORM) {
manifest
[
platform
]
&&
manifest
[
platform
].
uniStatistics
)
}
export
function
getRouterOptions
(
manifestJson
:
Record
<
string
,
any
>
):
{
mode
?:
'
history
'
|
'
hash
'
base
?:
string
}
{
return
extend
({},
manifestJson
.
h5
?.
router
)
}
packages/uni-h5-vite/src/plugin/index.ts
浏览文件 @
7a96ac22
import
fs
from
'
fs
'
import
path
from
'
path
'
import
{
parse
as
parseUrl
}
from
'
url
'
import
{
isInHBuilderX
,
resolveMainPathOnce
,
UniVitePlugin
,
getRouterOptions
,
parseManifestJsonOnce
,
EXTNAME_VUE_RE
,
}
from
'
@dcloudio/uni-cli-shared
'
import
{
createHandleHotUpdate
}
from
'
./handleHotUpdate
'
import
{
createTransformIndexHtml
}
from
'
./transformIndexHtml
'
...
...
@@ -96,6 +100,37 @@ export const UniH5Plugin: UniVitePlugin = {
}
return
res
}
const
routerOptions
=
getRouterOptions
(
parseManifestJsonOnce
(
process
.
env
.
UNI_INPUT_DIR
)
)
if
(
routerOptions
.
mode
===
'
history
'
)
{
server
.
middlewares
.
use
(
async
(
req
,
res
,
next
)
=>
{
// 当页面被作为组件引用时,会导致history刷新该页面直接显示js代码,因为该页面已被缓存为了module,
// https://github.com/vitejs/vite/blob/702d50315535c189151c67d33e4a22124f926bed/packages/vite/src/node/server/transformRequest.ts#L52
// /pages/tabBar/API/API
let
{
url
}
=
req
if
(
url
)
{
const
base
=
server
.
config
.
base
const
parsed
=
parseUrl
(
url
)
let
newUrl
=
url
if
((
parsed
.
pathname
||
'
/
'
).
startsWith
(
base
))
{
newUrl
=
newUrl
.
replace
(
base
,
'
/
'
)
}
if
(
!
path
.
extname
(
newUrl
)
&&
!
newUrl
.
endsWith
(
'
/
'
)
&&
!
newUrl
.
includes
(
'
?
'
)
)
{
const
module
=
await
server
.
moduleGraph
.
getModuleByUrl
(
newUrl
)
if
(
module
&&
module
.
file
&&
EXTNAME_VUE_RE
.
test
(
module
.
file
))
{
// /pages/tabBar/API/API => /pages/tabBar/API/API?__t__=time
req
.
url
=
url
+
'
?__t__=
'
+
Date
.
now
()
}
}
}
next
()
})
}
},
handleHotUpdate
:
createHandleHotUpdate
(),
transformIndexHtml
:
createTransformIndexHtml
(),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录