uni-app 1.4 发布,一套代码,发行多个平台

崔红保
 崔红保
发布于 2019年01月22日
收藏 43

在2019新年到来之际,uni-app 1.4版本正式发布,新增支持百度、支付宝小程序,开放插件市场,同时注入更多优秀特性,为开发者送上了一份新年大礼!

支持更多小程序平台

uni-app 1.4 版本新增支持百度、支付宝小程序,从此一次开发,可发布小程序(微信/支付宝/百度)、H5、App(iOS/Android)6大平台!

uni-appHBuilderX开发工具中有非常友好高效的支持,提供可视化操作菜单,发行各家小程序简单便利详情,这里不再赘述;本文主要说明如何通过vue-cli编译发行各家小程序。

使用cli编译到各家小程序之前,需先安装vue-cli并创建uni-app项目,主要命令如下:

# npm script
# 全局安装vue-cli
$ npm install -g @vue/cli
# 创建uni-app项目,会提示选择项目模板
$ vue create -p dcloudio/uni-preset-vue my-project
# 进入项目目录
$ cd my-project

Tips:如果之前已使用过老版本的uni-app cli插件,则通过npmuni-app升级到最新版,即可获得将原有uni-app项目转换到各家小程序的能力

支持支付宝小程序

使用如下命令进行支付宝小程序的编译预览及发行打包

# npm script
# dev 模式,编译预览
$ npm run dev:mp-alipay
# build 模式,发行打包
$ npm run build:mp-alipay

发行到支付宝小程序,需要你下载并打开支付宝小程序开发者工具,然后选择项目编译目录(dev模式、build 模式编译目录不同,见下方说明)进行预览或发行。

dev模式 和 build 模式的区别:

  • dev 模式编译目录为项目根目录下的 /dist/dev/ 目录

  • build 模式编译目录为项目根目录下的 /dist/build/ 目录

  • dev 模式有 SourceMap 可以方便的进行断点调试

  • build 模式会将代码将会进行压缩,体积更小更适合发布为正式版应用

目前hello uni-app 已上线支付宝小程序,可以打开支付宝,扫描以下二维码进行体验:

支持百度智能小程序

百度智能小程序的编译方式与支付宝小程序一致,简单替换平台标识(mp-baidu)即可。

你可以使用如下命令进行百度智能小程序编译预览及打包:

# npm script
# dev 模式,编译预览
$ npm run dev:mp-baidu
# build 模式,发行打包
$ npm run build:mp-baidu

发行到百度智能小程序,需要你下载并打开百度开发者工具,然后选择项目编译目录进行预览或发行。

Tips:dev 模式、build模式差异同支付宝小程序

支持通过 cli 命令行编译到微信小程序平台

uni-app 很早就支持发行到微信小程序,但需在 HBuilderX 开发工具中操作;uni-app 1.4版本支持通过vue-cli 编译到微信小程序,方式同支付宝小程序。

你可以使用如下命令进行微信小程序编译预览及打包:

# npm script
# dev 模式,编译预览
$ npm run dev:mp-weixin
# build 模式,发行打包
$ npm run build:mp-weixin

同样,发行到微信小程序,需要你下载并打开微信开发者工具,然后选择项目编译目录进行预览或发行。

其它功能特性

uni-app 插件市场上线了!支持前端组件、js sdk、页面模板、项目模板、原生插件等多种类型,还支持原生插件的云打包,详情

插件市场作为轮子的需求者和制造者之间的对接平台,将提升所有 uni-app 开发者的效率和重用程度。

另外,uni-app 1.4版本在条件编译、H5平台等方面也有大量改建,详见如下:

  • 新增 条件编译 static 支持平台目录,不同平台可定义自己的独有静态文件 详情

  • 新增 条件编译 支持多平台“或”运算符:||。例如: // #ifdef MP-WEIXIN || MP-BAIDU 代表在微信小程序和百度小程序均生效

  • 新增 条件编译 pages.json 支持条件编译。pages.json里不引用的页面不会打包,可以更自由的管理不同平台文件的打包策略。

  • 修复 条件编译 使用 ifndef 导致编译错误的问题

  • 新增 manifest.json 中(mp-weixin 节点下) 新增 permission 配置,用于微信小程序接口权限相关设置

  • 新增 蓝牙相关API 详情

  • 新增 低功耗蓝牙相关API 详情

  • 新增 iBeacon相关API 详情

  • 优化 css 编译报错提示

  • 修复 v-for item 部分写法编译失败的问题

  • H5平台 新增 canvas 组件和相关 API

  • H5平台 优化 导航栏自定义按钮支持 float 属性

  • H5平台 修复 uni.showModal 内容过多显示超出屏幕的问题

  • H5平台 修复 picker 组件未设置 value 属性值时报错的问题

  • H5平台 修复 TabBar 页面 onHide 钩子函数不触发的问题

  • H5平台 修复 map 组件中 marker 图像不显示的问题

  • H5平台 修复 AudioContext 事件监听报错的问题

  • H5平台 修复 swiper 组件动态设置 current 后 swiper 不切换的问题

  • H5平台 修复 swiper 组件设置属性 previous-margin、next-margin 显示异常的问题

  • H5平台 修复 picker 组件显示的选中项不正确的问题 #103

  • H5平台 修复 picker 组件动态设置高度后显示异常的问题

  • H5平台 修复 radio 组件设置 color 属性不生效的问题 #119

  • H5平台 修复 picker 组件 columnchange 事件不触发的问题

未来规划

uni-app 将尽快适配字节跳动小程序,并进一步抹平H5、各家小程序之间的平台差异,让开发者尽可能的一套代码,顺滑的发行到多个平台。

uni-app 在小程序端,引用和改造了mpvueMegalo,感谢美团点评团队、网易考拉团队对开源社区的贡献!

uni-app会在开源的路上继续前行,为帮助uni-app更好的成长,更好的服务开发者,欢迎您给uni-app反馈改进意见,或 Star 鼓励。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:uni-app 1.4 发布,一套代码,发行多个平台
加载中

精彩评论

红薯
红薯

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~
技术哪有 low 不 low 的,黑猫白猫,能抓耗子的就是好猫,哈:)
巴拉迪维
巴拉迪维

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“红薯”的评论

技术哪有 low 不 low 的,黑猫白猫,能抓耗子的就是好猫,哈:)
@红薯 非常非常认同
敬水仙
敬水仙

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~
你来一个不low的,让大家爽爽!
深谷飞鱼

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”

引用来自“崔红保”的评论

哈哈,不知道你是否仔细看过这篇文章,以及你的同事是否看过uni-app文档,这篇文章开头就是基于 vue-cli 创建应用,怎会不支持npm?uni-app 官方文档也单独有一个章节介绍 npm 支持 以及 ES6 的支持,ES7 的 await/async 同样支持。

引用来自“左华栋”的评论

所以还是 vue 的,并不是uni 的。
我看了下文档,uni 自己没有 cli 工具么?
懂不懂 vue-cli preset?无脑瞎喷的LJ,简直是胡搅蛮缠!
看你的回复,自己不认真调查,甩锅给同事,人云亦云,有没有自己的思想?
昊天天讲个故事
昊天天讲个故事
准备找个跨平台框架开发小程序和移动端应用,听同事说uni-app 真LJ ,同事是大神,我觉得他的判断是没错的,打死不用uni-app,果断选择Taro。用了几天Taro,emmmmm ?要不试试uni-app吧,然后,嗯,真香~~~

最新评论(29

龖龖

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”
😰额。。。您问下这位同事他阅读官方文档了么
龖龖
很棒的框架,希望官方加油迭代~
瞳player
瞳player
我王境泽。。。。真香!
左华栋
左华栋

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”

引用来自“崔红保”的评论

哈哈,不知道你是否仔细看过这篇文章,以及你的同事是否看过uni-app文档,这篇文章开头就是基于 vue-cli 创建应用,怎会不支持npm?uni-app 官方文档也单独有一个章节介绍 npm 支持 以及 ES6 的支持,ES7 的 await/async 同样支持。

引用来自“左华栋”的评论

所以还是 vue 的,并不是uni 的。
我看了下文档,uni 自己没有 cli 工具么?

引用来自“崔红保”的评论

这个我只能 呵呵 了

引用来自“左华栋”的评论

无意冒犯,刚才叙述有些问题,公司在15年那时候我就开始四处推荐 Hbuilder 了,后来一直想用MUI 做APP,但是前端强烈反对,那时候ionic2 也才刚出来,可以说跟MUI 失之交臂了。再后来,看到MUI 的流应用,只可惜后面没推广开,不然也许没今天“快应用”什么事了。
我们同样追求技术,uni 这个产品上,总是感觉跟taro比起来欠缺点,我意思可以借鉴下 taro。
mpvue 目前我们也有在用。 相对来说,angular 阵营倒是缺一个能开发小程序的。

引用来自“hanchuha”的评论

我觉得你好像连uni的文档都没看过,连uni有什么支持什么都不知道就直接说不好,包括你不断说“同事说”,也是建立在这个基础上的,结果没料到这么多人回复你,结果你不得不匆匆的瞥了一眼文档,最后也不说不好了,直接说可以借鉴一下,哈哈

引用来自“左华栋”的评论

非要我说实话的话,作为一个主 angular 技术的团队,对vue 类的软件基本不想说啥了...不过我们也有vue 拿来做一些小项目

引用来自“崔红保”的评论

那就闭嘴别说话了!

不调研,不了解事实真相,张嘴就喷,发表这么多站不住脚的评论,误导未认真调研的开发者!

你逐条反思一下你的评论,哪个是认真调研后客观公正的?
你随便发表一个观点,被人客观反驳后,你不进行深入讨论,马上顾左右而言他,再抛出另外一个所谓问题,简直就是为了喷而喷!
从最初的npm到cli,到现在Vue都看不上了,你还想换什么话题?

你也是一个开源软件的作者,如此不严谨、不敬畏的技术态度,让开发者如何放心?如何塑造你开源作品的公信力?
之前回答确实不够严谨,也没看最新文档。
uni这事上我承认。
手机上好像无法删除评论,抱歉。
vue 和 MUI的问题另说,跟目前uni无关。
崔红保
崔红保

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”

引用来自“崔红保”的评论

哈哈,不知道你是否仔细看过这篇文章,以及你的同事是否看过uni-app文档,这篇文章开头就是基于 vue-cli 创建应用,怎会不支持npm?uni-app 官方文档也单独有一个章节介绍 npm 支持 以及 ES6 的支持,ES7 的 await/async 同样支持。

引用来自“左华栋”的评论

所以还是 vue 的,并不是uni 的。
我看了下文档,uni 自己没有 cli 工具么?

引用来自“崔红保”的评论

这个我只能 呵呵 了

引用来自“左华栋”的评论

无意冒犯,刚才叙述有些问题,公司在15年那时候我就开始四处推荐 Hbuilder 了,后来一直想用MUI 做APP,但是前端强烈反对,那时候ionic2 也才刚出来,可以说跟MUI 失之交臂了。再后来,看到MUI 的流应用,只可惜后面没推广开,不然也许没今天“快应用”什么事了。
我们同样追求技术,uni 这个产品上,总是感觉跟taro比起来欠缺点,我意思可以借鉴下 taro。
mpvue 目前我们也有在用。 相对来说,angular 阵营倒是缺一个能开发小程序的。

引用来自“hanchuha”的评论

我觉得你好像连uni的文档都没看过,连uni有什么支持什么都不知道就直接说不好,包括你不断说“同事说”,也是建立在这个基础上的,结果没料到这么多人回复你,结果你不得不匆匆的瞥了一眼文档,最后也不说不好了,直接说可以借鉴一下,哈哈

引用来自“左华栋”的评论

非要我说实话的话,作为一个主 angular 技术的团队,对vue 类的软件基本不想说啥了...不过我们也有vue 拿来做一些小项目
那就闭嘴别说话了!

不调研,不了解事实真相,张嘴就喷,发表这么多站不住脚的评论,误导未认真调研的开发者!

你逐条反思一下你的评论,哪个是认真调研后客观公正的?
你随便发表一个观点,被人客观反驳后,你不进行深入讨论,马上顾左右而言他,再抛出另外一个所谓问题,简直就是为了喷而喷!
从最初的npm到cli,到现在Vue都看不上了,你还想换什么话题?

你也是一个开源软件的作者,如此不严谨、不敬畏的技术态度,让开发者如何放心?如何塑造你开源作品的公信力?
左华栋
左华栋
我们三大框架都有使用,最后稳定在angular 和vue。
尤大其实也说vue重点在渐进式。
vue快速开发一些小项目确实挺合适。
一些长期的大型项目,我们会使用angular。
小虾米~
小虾米~
不是一个阵营,angular与vue之争有意义吗?知乎上的react与vue之争已经上演过,我只想说我受益于谁,我就支持谁…
g
gaier

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”

引用来自“崔红保”的评论

哈哈,不知道你是否仔细看过这篇文章,以及你的同事是否看过uni-app文档,这篇文章开头就是基于 vue-cli 创建应用,怎会不支持npm?uni-app 官方文档也单独有一个章节介绍 npm 支持 以及 ES6 的支持,ES7 的 await/async 同样支持。

引用来自“左华栋”的评论

所以还是 vue 的,并不是uni 的。
我看了下文档,uni 自己没有 cli 工具么?

引用来自“深谷飞鱼”的评论

懂不懂 vue-cli preset?无脑瞎喷的LJ,简直是胡搅蛮缠!
看你的回复,自己不认真调查,甩锅给同事,人云亦云,有没有自己的思想?

引用来自“左华栋”的评论

恕我直言,跟taro 没得比。
没有用过uni-app,连vue支持npm和cli都不知道,提供大量错误观点给公众,请管理员把这个无脑lj的言论都删掉!
左华栋
左华栋

引用来自“左华栋”的评论

想法很好,就是技术有点low~ 还是用taro~

引用来自“崔红保”的评论

咋low了?技术栈是Vue?还是哪块实现比较蹩脚?

引用来自“左华栋”的评论

同事说:
“哪个开发者用那个写东西 不骂娘我服他,
最起码的npm都不支持,
更别说promise了,
都9102年了 还xx搞的跟十年前一样。
宁愿用jquery”

引用来自“崔红保”的评论

哈哈,不知道你是否仔细看过这篇文章,以及你的同事是否看过uni-app文档,这篇文章开头就是基于 vue-cli 创建应用,怎会不支持npm?uni-app 官方文档也单独有一个章节介绍 npm 支持 以及 ES6 的支持,ES7 的 await/async 同样支持。

引用来自“左华栋”的评论

所以还是 vue 的,并不是uni 的。
我看了下文档,uni 自己没有 cli 工具么?

引用来自“崔红保”的评论

这个我只能 呵呵 了

引用来自“左华栋”的评论

无意冒犯,刚才叙述有些问题,公司在15年那时候我就开始四处推荐 Hbuilder 了,后来一直想用MUI 做APP,但是前端强烈反对,那时候ionic2 也才刚出来,可以说跟MUI 失之交臂了。再后来,看到MUI 的流应用,只可惜后面没推广开,不然也许没今天“快应用”什么事了。
我们同样追求技术,uni 这个产品上,总是感觉跟taro比起来欠缺点,我意思可以借鉴下 taro。
mpvue 目前我们也有在用。 相对来说,angular 阵营倒是缺一个能开发小程序的。

引用来自“hanchuha”的评论

我觉得你好像连uni的文档都没看过,连uni有什么支持什么都不知道就直接说不好,包括你不断说“同事说”,也是建立在这个基础上的,结果没料到这么多人回复你,结果你不得不匆匆的瞥了一眼文档,最后也不说不好了,直接说可以借鉴一下,哈哈
非要我说实话的话,作为一个主 angular 技术的团队,对vue 类的软件基本不想说啥了...不过我们也有vue 拿来做一些小项目
昊天天讲个故事
昊天天讲个故事
准备找个跨平台框架开发小程序和移动端应用,听同事说uni-app 真LJ ,同事是大神,我觉得他的判断是没错的,打死不用uni-app,果断选择Taro。用了几天Taro,emmmmm ?要不试试uni-app吧,然后,嗯,真香~~~
返回顶部
顶部