Vue 项目利用 HBuilderX 打包 APP 流程

news2024/11/17 0:20:35

想要将 Vue 打包成 App,要借助一些插件工具,例如:Electron、Cordova 等,或者直接利用开发工具,例如:Android Studio、HBuilderX 等。本文的目的是带大家通过 HBuilder 开发工具对 Vue 项目进行打包。

一、大致流程描述

  1. 项目整体使用 Vue+HbuilderX(或者Hbuilder) 开发
  2. 使用 Vue 来实现基本页面跳转,增删改查等 app 基本功能,
  3. 当需要使用到 app 原生功能则使用一些相关的 UI 框架(如:mui、nutui 等)
  4. 真机调试
  5. 最后通过HbuilderX将vue项目打包成app包

二、对 vue 项目进行打包

2.1 打包前,将 vue.config.js 文件中 base 路径修改为 ./,如图:

在这里插入图片描述

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'

export default defineConfig({
  base:'./', // 如果直接默认打包,打包后静态资源默认为 “/” ,这样会导致找不到静态资源,最后的apk安装以后白屏
  plugins: [
    vue(),
    vueJsx(),
  ],

  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

如果直接默认打包,打包后静态资源默认为 “/” ,这样会导致找不到静态资源,最后的apk安装以后白屏

2.2. 将 Vue 项目打包,执行如下命令:

npm run build

打包后的 dist 目录如图
在这里插入图片描述
打包以后的index.html文件根目录为 ”./“,其他assets文件夹中的js文件中的静态资源引用都会统一变成 ”./“,可以正确访问。其中index.html如下
在这里插入图片描述

三、使用 HBuilderX 将 dist 静态文件打包为移动端 app

  1. 下载 HBuilderX最新版本,HBuilderX 是绿色软件,免安装
  2. 在DCloud开发者中心完成账号注册与开发者认证
  3. 创建5+App项目,默认文件结构如下 在这里插入图片描述
  4. 进入项目文件夹目录,删除文件夹css、img、js,文件index.html,将打包后的 dist 目录中文件拷贝到此文件夹,如下
    在这里插入图片描述
  5. HBuilderX软件,运行->运行到内置浏览器,进行测试,测试结果如下
    在这里插入图片描述

    根据测试结果,做代码微调

  6. HBuilderX软件,发行->原生App-云打包,进行 mainfest.json 文件配置,最后按提示与指南进行打包
    在这里插入图片描述
    manifest.json 配置界面如下:在这里插入图片描述
  7. apk安装到手机:在HBuilderX软件中,打开unpackage->release->apk,右击apk文件安装到手机
    在这里插入图片描述

附:使用 Cordova 打包步骤

  1. 安装 Cordova
    npm install -g cordova
    
  2. 创建 Cordova 项目
    cordova create my-app
    
  3. 进入项目目录
    cd my-app
    
  4. 添加平台,如 Android
    cordova platform add android
    
  5. 将 Vue 项目构建成可以部署的代码
    npm run build
    
  6. 将构建后的代码拷贝到 Cordova 项目中
    p -r dist/* www/
    
  7. 构建并运行 Cordova 项目
    cordova build android
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/518024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-函数

1.什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来, 需要的时候直接调用即可。这样既 提高了代码效率 ,又 提高了可维护性 。在 SQL 中我们也可以使用函数 对检索出来的数据…

7.设计模式之责任链模式

前言 责任链,即将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递, 链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。为了避免请求发送者与多个请求处理者耦合在…

git如何将本地分支推送到远程(远程上没有该分支)

Author: wencoo Blog:https://wencoo.blog.csdn.net/ Date: 12/05/2023 Details:文章目录 正文 或 背景7.如果远程新建了一个分支,本地没有该分支。8.如果本地新建了一个分支 branch_name,但是在远程没有。报错解决 参考打赏 正文 或 背景 本…

Java8之Stream操作

Java8之Stream操作 stream干啥用的?创建流中间操作终结操作好文推荐----接口优化思想 stream干啥用的? Stream 就是操作数据用的。使用起来很方便 创建流 → 中间操作 → 终结操作 Stream的操作可以分为两大类:中间操作、终结操作 中间操作可…

【项目源码】采用UWB技术开发的定位系统源码,室内定位系统源码

UWB技术定位系统源码,高精度人员定位系统源码,智慧工厂人员定位系统源码,室内定位系统源码 技术架构:单体服务 硬件(UWB定位基站、卡牌) 开发语言:java 开发工具:idea 、VS Code…

字节小组长薪资被应届生员工倒挂7K,不把老员工当人?

一位字节跳动的小管理爆出,无意中看到了整个部门薪资,本以为自己算比较高的,但看完之后整个人都傻眼了。小组长的职位月薪28K,而手下组员却是35K,当天晚上抽了一包烟也没想明白是为什么。 楼主表示,自己是字…

基于java的闲置物品交易系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题,今天给…

YOLOv5改进系列(4)——添加ECA注意力机制

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2)——添加CBAM注意力机制

T265录制的rosbag拆包:拆IMU序列和图像序列方法以及如何制作双目euroc、双目tum数据集

目录 1.录制bag包 2.左右目图像的拆解 3.拆IMU数据 4.如何制作eruoc与tum数据集 4.1 eruoc数据集格式 4.2 对齐时间戳 4.3 编写imu.csv文件 4.4 生成索引文件 4.一个脚本完成拆包 1.录制bag包 这里推荐我的同学的博客,大家可以参考这篇博客录制T265的ros包并…

移动互联网市场是不需要Android 开发了吗?

就近有不少朋友在吐槽:如今Android工作真的难找!从年初找到了现在,是市场不需要Android 开发人才了,人都迷茫了,是不是应该考虑转行了? 其实这种情况往年也是有的,但是今年显得的更严重一些。我…

【el-select】多选的简单用法

即使element用了很久,还是会有新的东西没用过 el-select的多选和日期组件有范围的el-date-picker很相似,都是绑定数组,然后给需要的字段再赋值 加上multiple属性即可,collapse-tags看自己需不需要 这个时候v-model绑定的是数组 …

【C++初阶】C++模版(初阶)

文章目录 前言泛型编程函数模版函数模板概念函数模板格式函数模板的原理函数模板的实例化1.隐式实例化2.显式实例化 函数模版的匹配规则 类模版类模板的定义格式类模板的实例化 总结 前言 C的模版也是相较于C语言更有优势的地方,正是有了模版,才让C真正…

vue-admin-template 后台模版初始化及问题汇总

参考:https://segmentfault.com/a/1190000023185109?sortvotes 问题一:Unsupported engine 后来经过分析,发现,element-ui 的版本依赖锁定是在一个叫做package-locak.json 中,并且找到了相关配置。 package-lock.js…

C语言文件:数据文件a.txt中保存了若干个学生的学号、姓名和成绩。请编程读出显示文件内容并分类统计各等级人数,最后显示统计结果。

一、作者想先说一点废话(狗头表情) 想必经常看我博客的小伙伴们已经发现我最近的博客风格和以往有些不同。以往的博客都是“一本正经不敢胡来”,但近段时间,文章风格却变得“废话连篇放荡不羁”,究竟是为什么呢&#…

像素画板-第14届蓝桥杯省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第133讲。 像素画板,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第4题&#xf…

基于VCSEL红外激光,柔性AR隐形眼镜方案诞生

研发AR隐形眼镜有多难?从备受关注的Mojo Vision来看,这家公司成立了8年时间,累计融资超过2.26亿美元,但由于产品进展和融资受阻问题,不得不大幅裁员、重组,将重心从AR隐形眼镜转移到Micro LED显示业务。 为…

生态、遥感、大气、水文水资源、地下水土壤、人工智能等多领域教程

理论讲解案例实战动手实操讨论互动 针对 生态农林、遥感、语言土壤、统计、人工智能等领域全套教程。包含:InVEST模型、DSSAT模型、CENTURY模型、CASA模型、SWH蒸散模型、BGC模型、MAXENT模型、CLM模式、CLUE模型、PROSAIL模型、Biomod模型、Hydrus模型、Meta分析、ArcGIS、MAT…

黑马点评Redis实战(优惠卷秒杀)

本文是上一篇文章的后续,上一篇文章链接 马点评Redis实战(短信登录;商户查询缓存) 锁 一、优惠卷秒杀 id是一个订单必备的属性,而订单的id属性是必须唯一的,首先我们会想到使用数据库主键id,并设置为自增。这样似乎就能满足唯…

tracker_query_storage fail, error no: 28, error info: No space left on device

先说结论: 这个错误信息提示磁盘空间不足,导致tracker查询存储失败。错误代码28表示系统中没有足够的可用空间。这个问题的解决方法是清理磁盘空间,释放足够的存储空间。 [rootlocalhost fdfs]# fdfs_test /etc/fdfs/client.conf upload /h…

DNS域名解析,以及A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR说明

温故知新,最近网上开到相关文章,这里终结记录一下,供大家参考。 目录 1.A记录 2、CNAME: 两种域名解析方式 4、NS记录 5、TXT记录: 6、AAAA记录: 7、SRV记录: 8、SOA记录: …