最近开发一个uni-app的小程序项目,因为习惯使用vscode 而项目不得不借助hbuderx 运行,微信开发工具调试,偶尔还需要使用 ios模拟器, 8g内存的mac 就变的异常卡顿,所以就研究了下通过npm命令去编译、 运行等工程化配置, 这样就不用运行hbuderx 减少内存使用,顺便 记录下从需求到完善功能的过程,以及遇到的问题,解决的方案。

一、npm 编译uni-app 代码 

打开uni-app 官方文档寻找工程化相关的文档

比较符合我的需求,按照官方文档下载demo尝试

因为之前已经安装过vue-cli 这里我们直接跳过,第二步选择正式版

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

因为网络原因,初始化项目失败

尝试gitee 直接下载模版, 得到这样一个文件结构的项目

package.json 是这样子的

尝试运行下命令

npm i
npm run dev:mp-weixin

 编译成功了,项目根目录下出现了一个dist 文件夹, 显然这是个编译过后的微信小程序项目代码

废话不多少 直接使用微信开发工具打开看看

尝试修改下代码

我们删除无用的命令得到这样一个package.json

{"name": "uni-preset-vue","version": "0.0.0","scripts": {"dev:mp-weixin": "uni -p mp-weixin","build:mp-weixin": "uni build -p mp-weixin"},"dependencies": {"@dcloudio/uni-app": "^3.0.0-alpha-3041820220630001","@dcloudio/uni-app-plus": "^3.0.0-alpha-3041820220630001","@dcloudio/uni-mp-weixin": "^3.0.0-alpha-3041820220630001","vue": "^3.2.33","vue-i18n": "^9.1.9","vuex": "^4.0.2"},"devDependencies": {"@dcloudio/types": "^3.0.4","@dcloudio/uni-automator": "^3.0.0-alpha-3041820220630001","@dcloudio/uni-cli-shared": "^3.0.0-alpha-3041820220630001","@dcloudio/vite-plugin-uni": "^3.0.0-alpha-3041820220630001","vite": "^2.9.6"}
}

这样我们就实现了通过 npm run dev:mp-weixin 去编译uni-app 开发的微信小程序项目了,接下来查看微信开发工具的自动化api 文档 去实现自动打开我们的dist 目录的项目就ok了

二、打开微信开发工具

打开微信开发工具官方api

按照上面的操作一下

npm i miniprogram-automator --save-dev

编写openWeixin.js

const automator = require('miniprogram-automator')automator.launch({cliPath: 'path/to/cli', // 工具 cli 位置,如果你没有更改过默认安装位置,可以忽略此项projectPath: 'path/to/project', // 项目文件地址
}).then(async miniProgram => {const page = await miniProgram.reLaunch('/page/component/index')await page.waitFor(500)const element = await page.$('.kind-list-item-hd')console.log(await element.attribute('class'))await element.tap()await miniProgram.close()
})

更改项目地址到生成的dist 目录

const automator = require('miniprogram-automator')automator.launch({cliPath: 'path/to/cli', // 工具 cli 位置,如果你没有更改过默认安装位置,可以忽略此项projectPath: './dist/dev/mp-weixin', // 项目文件地址
}).then(async miniProgram => {// 打开后的回掉看自己需求编写
})

执行一下

node openWeixin.js

成功执行了

编写package.json script 命令

"scripts": {"open": "node openWeixin","serve": "npm-run-all --parallel dev:mp-weixin open  --continue-on-error"}

执行 npm run serve 就可以了 (npm-run-all 执行多个命令的包,我尝试了&& 发现会报错 所以找到的npm-run-all 来实现, npm-run-all 使用方法同学们自行查询官方文档)

uni-app 开发微信小程序 自动化编译,启动项目相关推荐

  1. uni app 开发微信小程序及上线体验

    uni app 开发微信小程序及上线体验 项目创建及微信小程序AppId的申请 本次开发的是电商类的微信小程序,这里用到的是HBuilderX这个编辑器.之前用的Visual Studio Code ...

  2. 记录uni.app开发微信小程序中地图的使用,以及项目中的解决办法

    标题先讲一下需求:需要获取用户的地址信息以及经纬度,并在地图中展示时出来 uniapp官方也提供了api uni.getLocation(OBJECT) getLocation只能获取用户的经纬度,不 ...

  3. uni.app开发物联网小程序

    1.当切换页面的时候,容易与mqtt服务器断开连接,并报错 原因:在onLoad事件中,获取参数的时候使用异步获取,但是在事件里面还使用了这个参数,导致mqtt发布的时候,发了一个空主题,导致连接被断 ...

  4. taro开发微信小程序-播放轨迹(十一)

    taro集成了地图后如何实现轨迹播放,暂停,停止呢?本身地图并不具备轨迹播放的能力,但是基于地图api可以实现轨迹播放的效果 思路如下: 1.获取所有的轨迹坐标点-最好是数组格式的json 2.定义一 ...

  5. taro开发微信小程序-添加开发者预览,上传测试版本(十四)

    taro开发微信小程序,上传测试版本,如果需要访问网络需要打开调试模式,如果配置了https协议的服务,提示对应的服务器证书无效,那么必须正确配置ssl证书,可以在阿里云或者腾讯云申请. 添加开发者预 ...

  6. json 微信小程序 筛选_GitHub - zhengyangkang/sl-filter: uni -app 一款使用简单的筛选组件,适配app、微信小程序、H5。...

    sl-filter 筛选 筛选组件,组件名:sl-filter dcloud插件市场地址 sl-filter 简介 一款使用简单的筛选组件,适配app.微信小程序.H5. 感谢分享 效果图 并列菜单 ...

  7. 开发APP、微信小程序、网页,都需要什么?

    开发APP,微信小程序,网页都需要什么? 准备工作 前端开发 后端开发 技术整合 打包上线 结语 在开始介绍之前,我先罗列一下APP,微信小程序,网页的大比较 准备工作 云服务器,域名(需备案),SS ...

  8. uniapp一套代码开发app和微信小程序

    为什么选择uniapp开发? 为什么选择uniapp进行开发? 1.uniapp对于独自开发是相当友好的,一套代码可以兼容app(安卓,ios),小程序,h5等,一定程度上降低了开发的成本,个人开发的 ...

  9. uniapp开发APP和微信小程序——使用高德实现定位

    在uniapp官网中明确说了可以使用高德地图来实现APP和微信小程序的定位. 在dcloud社区里大佬已经给出了实现方法(链接:uni-app 中使用微信小程序第三方 SDK 及资源汇总 - DClo ...

最新文章

  1. 极索(Gsuo)推出新版地图采用Gmap设计思路
  2. Tomcat6 ,servlet配置(可用)
  3. javascript笔记整理(数据类型强制/隐式转换 )
  4. java程序员 进阶_Java程序员进阶架构师的五个阶段,你到
  5. Windows Phone 8.1 应用商店将于 12 月 16 日关闭
  6. printf函数输出格式汇总
  7. Python面向对象-0
  8. 北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!
  9. 解决lenovo V470 安装win8 无法重启、关机故障
  10. 京东联盟sdk php,京东联盟新增对接sdk,配置教程
  11. 马云和卫哲:从不屑到仰慕 从朋友到诀别
  12. 六龙争霸3D国战怎么玩 国战玩法详解
  13. FPGA设计中提高工作频率及降低功耗题目合集
  14. mac关于 E45: ‘readonly‘ option is set (add ! to override)
  15. 完全不用递归解汉诺塔(65个盘子——VC6代码)
  16. 国内十大正规现货交易平台排名(2022最新榜单)
  17. 不用编程,实现三菱FX5U与罗克韦尔(AB)PLC之间实时通讯
  18. crontab: error renaming解决方法
  19. android 高德地图 删除多边形,高德地图多边形覆盖物添加、获取、删除
  20. GUI线程安全详解(三)

热门文章

  1. oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...
  2. 如何用DirectShow替代付费的摄像头SDK
  3. 实例讲解:JAVA SOAP技术(2)完
  4. CDN 加速 OSS 常见问题及处理思路
  5. AcWing寒假每日一题2058. 笨拙的手指
  6. WordPress图片模糊问题
  7. Python学习之路:函数传递可变参数与不可变参数
  8. hp笔记本无线网服务器,惠普电脑连不上无线网该怎么办
  9. PMP-项目经理角色
  10. 小蜜蜂(裴波那契的应用)