JNPF低代码开发平台移动端项目命令行打包H5改造

2021-04-15 19:45:26

分享一次对 JNPF 移动端 uni-app 项目命令行打包 H5 的改造过程

问题背景

JNPF 开发平台的移动端是基于 uni-app 进行开发的,所以可以实现多端应用的快速开发。
但是部署流程就略显繁琐了,JNPF 的移动端并不支持命令行调用打包。

这样子的话每次部署h5项目都需要拉取代码然后用工具打包再上传到服务器,太麻烦了,不能容忍。所以为了提高一点效率就需要对JNPF移动端项目进行一定的改造了。

为了更好地学习,在改造之前我们先来了解一下 vue-cli 创建的项目与 HBuilderX 可视化界面创建项目的区别吧。

可视化界面、vue-cli 命令行创建项目的区别

编译器的区别

vue-cli

  • 编译器安装在项目下
  • 升级编译器需要执行 npm update 或者手动修改 package.json 中的uni相关依赖版本后执行 npm install
  • 需自己手动 npm 安装 less、scss、ts 等编译器,在 HBuilderX 的插件管理界面安装无效

HBuilderX

  • 编译器在 HBuilderX 的安装目录下的 plugin 目录,随着 HBuilderX 的升级会自动升级编译器

vue-cli 创建项目迁移 HBuilderX
已经使用 cli 创建的项目,想继续在 HBuilderX 里使用,可以把工程拖到 HBuilderX 中。

  • 如果是把整个项目拖入 HBuilderX,则编译时走的是项目下的编译器。
  • 如果是把 src 目录拖入到 HBuilderX 中,则走的是 HBuilderX 安装目录下plugin 目录下的编译器。

开发工具的区别

vue-cli

  • 内置 d.ts,可在 vscode、webstorm 等支持 d.ts 的开发工具里正常开发并有语法提示
  • 编译器已经安装到项目下,下载 HBuilderX 时只需下载 10M 的标准版

HBuilderX

  • 不带 d.ts
  • 内置了 uni-app 语法提示库
  • 发布 App 时,仍然需要使用 HBuilderX。其他开发工具无法发布 App

大概了解一下这些区别之后,下面就来讲讲具体改造的步骤。

uni-app 移动端项目改造步骤

1. 环境安装(可选),如果已经安装了可以忽略此步骤

npm install -g @vue/cli

2. 使用 vue-cli 命令行新建项目

vue create -p dcloudio/uni-preset-vue my-project

3. 接着选择项目模板(可选择默认模板)

4. 打开需要改造的 JNPF 移动端项目,复制 src 下的文件

  • 注意红框内的可以不用复制

5. 复制到用 vue-cli 新创建项目的 src 文件夹下

6. 修改cli创建项目的入口页及 manifest.json

因为JNPF移动端项目的入口页是main.html,所以需要把main.html的内容拷贝到cli创建项目public目录下的index.html去,然后如果manifest.json设置了打包配置的话那么就需要把配置中h5模板的配置改为public/index.html

"h5" : {
    "sdkConfigs" : {
        "maps" : {}
    },
    "title" : "xxx",
    "template" : "public/index.html",
    "domain" : "xxx",
    "devServer": {
        "port": 8081,
        "disableHostCheck": true,
        "proxy": {
            "/xx": {
                "target": "xx",
                "changeOrigin": true,
                "secure" : false,
                "pathRewrite": {
                    "^/xx": ""
                }
            }
        }
    }
}

7. 接着我们需要稍微改一下根目录下 package.json 的依赖

devDependencies 增加 "@dcloudio/uni-ui": "^1.2.5" ,然后就可以执行 npm install 了。

至此改造就差不多完成了,然后我们就可以尝试去命令行打包h5应用了。

命令行打包h5应用

老规矩先执行 npm install 安装依赖,安装完之后执行 npm run build:h5 命令尝试打包
不出意外的话会出现以下两种错误

从错误信息我们可以看出是缺少依赖( sass-loader 和 node-sass 的)。
所以我们分别执行以下命令就可以了

npm install --save sass-loader@7.3.1
npm install node-sass@4.14.1

也可以通过执行 yarn 来安装依赖。
安装好依赖之后我们再次执行npm run build:h5尝试打包,可以发现成功了

然后就可以基于命令行愉快地打包了。

总结

本次改造是基于 JNPF 的移动端项目但是方法对于其它的 uni-app 项目还是有一定参考价值的,如果遇到项目需要支持命令行打包都可以参照这种做法,希望本文可以帮到有需要的同学们。

本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

扫描下方二维码阅读当前文章

浏览器、微信扫码

评 论:

好文推荐
每天进步一点点~