uniapp可以打几次包
更新时间:2023-10-07包的概念
在了解 uniapp 可以打几次包之前,先来了解一下包的概念。包即是应用程序的打包产物,一般包含了所有用到的资源文件和代码文件。在 uniapp 中,包的生成方式是通过编译构建来完成的,可以使用 HBuilder X 编辑器自带的命令面板或者 CLI 命令行进行构建。在这里,我使用编译构建方式来生成包。uniapp 应用程序的构建输出路径为 unpackage/<app-name>/dist/dev/mp-weixin 目录,生成的包的默认文件夹名为 build。
其中,unpackage 目录是应用程序代码进行编译构建后的文件夹,<app-name> 表示应用程序的名称,在 HBuilder X 中会自动生成该名称,例如我新建了一个项目名为 myuniapp 的 uniapp 应用,则生成的目录结构如下所示:
unpackage
|--myuniapp
|--dist
|--dev
|--mp-weixin
|--build
| |-myuniapp.wechatdevtools
| |-myuniapp.h5
| |-myuniapp.android
| |-myuniapp.ios
|--static
|--index.html
|--build.js
|--build.css
|--...
首次构建生成包
在你第一次构建时,会生成一个不带 hash 值的输出文件夹 build。在应用程序发生变更时,需要重新编译构建,然后再将构建后的新版本的资源文件更新到 build 目录下。下面是一个简单示例,首先是创建一个 uniapp 项目:
// 通过 HBuilder X 编辑器创建一个 uniapp 项目,生成默认的项目结构
// 在项目根目录下执行命令,生成包
vue-cli-service build --mode development --platform mp-weixin
该命令会生成输出文件夹 build,输出结果如下:
[INFO] Starting build process
[INFO] Compilation complete. Watching for file changes.
改变的文件: gzipped_static/css/app.f01b8ced.css,gzipped_static/js/app.b6c80d23.js
改变的文件: index.html
Done in 6409ms.
App root path: F:\projects\myuniapp
Platform: mp-weixin
Mod: development
App Output Directory: F:\projects\myuniapp\dist\dev\mp-weixin\build
再次构建生成包
在你更新了应用程序的代码文件或者资源文件后,需要重新进行编译构建,生成新的资源文件并再次打包。下面是一个简单示例:
// 修改应用程序的代码文件或者资源文件
// 在项目根目录下重新执行命令,再次生成包
vue-cli-service build --mode development --platform mp-weixin
执行命令后会生成一个新的输出文件夹,包含了更新后的资源文件和代码文件。新的输出文件夹名称不同于上一个 build 目录,而是带有 hash 值的目录名称。因为 hash 值是构建时生成的,每次重新构建的 hash 值都会发生变化。
[INFO] Starting build process
[INFO] Compilation complete. Watching for file changes.
改变的文件: gzipped_static/css/app.f01b8ced.css,gzipped_static/js/app.b6c80d23.js
改变的文件: index.html
Done in 6409ms.
App root path: F:\projects\myuniapp
Platform: mp-weixin
Mod: development
App Output Directory: F:\projects\myuniapp\dist\dev\mp-weixin\build_25fa
自定义生成包名称
在使用编译构建方式生成包时,你还可以自定义生成的包名称。比如,我希望将生成的包名称改为 myapp,可以在 HBuilder X 编辑器的项目设置中进行更改。如果在 CLI 命令行进行构建,可以使用 --dest 选项来指定输出目录, 其中 #default 表示构建的 hash 值 :
// 通过 HBuilder X 编辑器进行设置
1. 打开项目,在 mianfest.json 文件中配置包名称
2. 使用 HBuilder X 编辑器自带的构建命令或者执行 CLI 命令构建
// 通过 CLI 命令进行构建
vue-cli-service build --dest myapp_#default --platform mp-weixin --mode development
该命令会在当前目录下生成一个名为 myapp_<hash-value> 的文件夹,<hash-value> 是构建时生成的 hash 值。
前言:在 uniapp 中每次打包都需要重新执行编译构建,通过编译构建方式可以自定义构建生成的包名称和构建生成的 hash 值,方便开发者管理应用程序的版本。在进行重新打包时,编译构建会重新生成新的资源文件和代码文件,并将其打包到新的输出文件夹中。为了方便开发者管理不同应用程序的版本和构建历史,官方建议使用 git 进行版本控制。