一、Vue3 项目打包

Vue 3 的项目使用npm run build来构建打包,打包后的文件默认在项目根目录的/dist下。

打包的注意事项如下(以 vue-cli 为例):

  1. 确保正确配置环境变量

    使用.env.development.env.production文件来配置开发和生产环境的变量,并在项目中通过process.env.VUE_APP_[变量名]访问。

  2. Vue Router 使用路由懒加载

    使用() => import('组件的路径')动态导入组件,webpack 或 vite 会将动态导入的组件单独打包。

  3. 组件库使用按需加载

    在使用如 Element-plus 等组件库时使用按需引入的方式来导入组件。

  4. 第三方库使用 cdn 引入

    第三方库如 Element-plus 通常会被构建到主包中,因此可以选择不将第三方库构建到主包而是使用 cdn 来引入第三方库。这将显著减小主包体积

    webpack
    index.html
  5. 使用 gzip 压缩

    可以使用 webpack 的插件compression-webpack-plugin在打包时开启 gzip 压缩。

    webpack

二、uniapp 的多端打包

下面主要介绍 uniapp 打包 H5 端、App 端、微信小程序的流程。

1. H5端

使用 vue-cli 创建的可以在终端使用npm run build:h5来构建,或者在 HBuilder 中点击发行 PC-Web 来构建。

使用 HBuilder 创建的项目则在 HBuilder 中通过发行 PC-Web 构建。

构建优化部分可以参考上面的 Vue 3 项目,下面将简述使用 vite 时不同的地方:

  1. 配置环境变量

    使用.env.development.env.production文件来配置开发和生产环境的变量,并在项目中通过import.meta.env.VITE_[变量名]访问。

  2. 使用 gzip 压缩。

    可以使用 Vite 的插件vite-plugin-compression在打包时开启 gzip 压缩。

2. App 端

  1. 配置manifest.json文件

    在 HBuilder 中打开项目的manifest.json文件,查看 AppID 是否有没有填写,如果没有填写点击右侧的重新获取来生成 AppID(需要登录 DCloud 账号)。

    App启动界面配置可以选择配置项目启动界面的启动图。

    App模块配置以及App权限配置配置项目所需要的模块以及权限。

  2. 使用 App 云打包

    点击工具栏的发行,并选择 App 云打包,配置 Android 或 IOS 打包设置。

  3. 生成证书

    Android 和 IOS 证书是签名,用于表明开发者身份。Android 可以选择使用测试证书,IOS 需要成为苹果开发者并申请证书,可以参考 DCloud 的教程:

    Android平台签名证书(.keystore)生成指南
    iOS证书(.p12)和描述文件(.mobileprovision)申请

    app-build
  4. 开始云打包

    配置好证书后就可以进行云打包了,点击打包等待打包完成,打包完成后就可以在控制台看到打包好文件夹的目录。

3. 微信小程序端

微信小程序端的打包需要先将项目编译为微信小程序版本,之后使用微信开发者工具上传。

  1. 将项目编译为微信小程序

    在终端运行npm run build:mp-weixin,或者在 HBuilder 点击发行进行微信小程序的构建。

    将构建好的项目/dist/build/mp-weixin在微信开发者工具打开

  2. 上线前的配置

    首先要填写 App ID。之后登录小程序平台,在左侧菜单进入开发管理,再进入开发设置,在下方的服务器域名修改配置,将项目的 API 地址添加到 request 合法域名中。

    request
  3. 上传开发版

    在微信开发者工具的调试器中检测代码质量,将出现的问题都解决。比如在项目的本地设置中开启“上传代码时自动压缩脚本文件”、关闭“不校验合法域名”等等。如果主包过大,请参考微信开发文档进行分包。

    如果质量检测都通过,则可以通过右上角的上传按钮将当前项目上传为开发版

    check
  4. 发布体验版并提交审核

    上传成功后,在微信小程序平台进入版本管理就可以看到上传的开发版本。点击右侧的下拉选项将其设置为体验版,点击提交就能看到体验版的二维码。

    demo

    体验版如果测试下来都没有什么问题的话就可以提交审核了。审核通过后,小程序端即上线成功。

    upload