DCloud_UNI_OttoJi
DCloud_UNI_OttoJi
  • 发布:2024-05-07 18:42
  • 更新:2024-11-05 14:00
  • 阅读:2119

HBuilderX 发布目录从 H5 调整为 web 的兼容方案

分类:uni-app

本文受众

本文用来解释和指导发布目录从 h5 调整 web 过程,收到影响的用户。

背景

HBuilderX 从 4.06 开始 uni-app 的 web 项目的编译目录从 h5 调整为 web 目录了。

  • 调整 uni-app运行 unpackage编译目录 h5目录名改为web

这一条改动很多人没有留意到,沿用历史的持续集成流程,会产生错误,因为目录发生了变更。

改动的原因,在相关 ask 社区中也有回答,主要还是为了统一概念。

早期 uni-app 在 web 端主要使用移动端展示内容,随着功能迭代和使用场景丰富,很多用户在宽屏 PC 端也会选择 uni-app 进行渲染和展示。

相关 api 的返回值,条件编译等已经陆陆续续统一到 web 上来,所以调整编译目录也是在计划中。

考虑到很多用户的使用场景,并不能轻易调整持续构建的流程,这里提供一些临时的兼容方案进行过度,最好的方案还是修改持续集成的流程。

临时兼容方案

如果是类似 jenkins/业务定制的 CICD 流程,可以尝试添加 post scripts,linux 服务器

cp -r unpackage/dist/build/web unpackage/dist/build/h5  
# 或者习惯用 mv,二选一即可  
mv unpackage/dist/build/web unpackage/dist/build/h5

如果你使用 windows 服务器

copy unpackage\\dist\\build\\web unpackage\\dist\\build\\h5

如果也不允许修改 jenkins ,可以尝试添加 npm scripts 添加上方命令。在 build 结束之后继续执行命令。

如果你仍有问题,欢迎留言讨论。

0 关注 分享

要回复文章请先登录注册

1***@qq.com

1***@qq.com

回复 DCloud_UNI_OttoJi :
好的,感谢回复
2024-11-05 14:00
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi (作者)

回复 1***@qq.com :
目前没有开放配置,你可以写一个 vite 插件,在 buildEnd 之后修改产物,这样适合自定义构建流程
2024-11-05 11:22
1***@qq.com

1***@qq.com

回复 DCloud_UNI_OttoJi :
想问下默认生成的发布目录是web,能否通过配置,发行后生成想要的目录名称吗?@DCloud_UNI_OttoJi
2024-11-04 18:22
情枫

情枫

回复 DCloud_UNI_OttoJi :
已经解决了,谢谢
2024-05-27 11:30
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi (作者)

回复 情枫 :
你好,你有新开帖子吗,方便跟进。请把复现工程带上,艾特我
2024-05-09 14:22
情枫

情枫

回复 情枫 :
我这个是webpack,而vue3是vite,其实就是vite怎么在H5模式下,打包的时候,重构文件名
2024-05-08 17:58
情枫

情枫

回复 情枫 :
怎么才能在vue3 模式下,打包重构文件名呢
2024-05-08 15:46
情枫

情枫

if (process.env.UNI_PLATFORM === 'h5') {
filePath = 'static/js/'
TimeStamp = new Date().getTime();
process.env.VUE_APP_INDEX_CSS_HASH = `${Version}${TimeStamp}` //给css文件也使用该时间戳
}
module.exports = {
configureWebpack: {
output: { //重构文件名
filename: `${filePath}[name].${Version}${TimeStamp}.js`, // index文件重命名为带有版本号+时间戳的格式
chunkFilename: `${filePath}[name].${Version}${TimeStamp}.js` // static/js/pages-home-index.-V1-754654657.js
},
}
}


vue3 模式下,打包重构文件名,h5换成web后,不生效了,我看打包最后生成的目录是assets,而之前生成的都是static/js,但是在vue2下还是可以,打包最后是static/js
2024-05-08 15:43