小程序通用转译框架娜娜奇1.0.4发布

娜娜奇在公司内部已经成功发布两个APP了,一个是支付宝小程序,一个是百度小程序,鉴于它已经好成熟了,我们决定提供更便捷的方式给普通用户使用,于是有了nanachi-cli。

npm install nanachi-cli -g

yarn global add nanachi-cli


更详细的安装方式参见官网 快速开始-文档

如果想体验一下我们的APP可以用手机百度或支付宝扫码查看。

百度小程序(需要使用手机百度APP 搜索栏旁边的拍摄二维码打开)


支付宝小程序(需要使用支付宝APP 扫码打开)


接着说一下本次更新情况

核心库

- 重构createContext的实现了,少了大概40行。

- 修复小程序在页面切换时触发onUnload事件时抛错的BUG #609

- 着手研究异步渲染,这样可以减少因为用户乱用setState而造成的性能下降。

CLI

- 修复async/await的使用在头条小程序、快应用及window下的出错 #605

- 增加 jsx 模板编译测试。

- 增加 navigate*, canvas , stopPullDownRefresh 测试。

- 添加第四套helloworld的简单模板

- 对用户的scss文件改用postcss进行转译,用户不需要安装庞大的node-sass。less文件以后也用postcss进行转译,现在进度60%。统一样式表的转译的好处时,我们在AST层面进行更细节的操作与在用法错误时给出更友善的提示信息。

快应用

- 对快应用API进行抹平:createCanvasContext, stopPullDownRefresh, storageSync。但目前storageSync还是有点问题,需要快应用方面提供一个获取storage的所有键值对的API,我们才真正兼容storageSync。

- 修复快应用下async/await语法。

- 修复windows下npm模块路径处理bug。[#605](swiper构建出的代码缺少函数 · Issue #609 · RubyLouvre/anu)

- 修复 pdd 和 music 模板在快应用bug。

- 修复 jsx 模版的 map 回调函数第二个参数缺失会报错问题。

- 修复 setNavigationBarTitle 接口。

- 修复存在滚动的情况下,PageWrapper组件的ux文件出错的问题。

H5

- 目前只要集中在API的兼容上,路由器什么已经完成了。以后娜娜奇也能将小程序转换成一个H5 SPA网站。目前已经完成的API一览。

打电话
makePhoneCall
剪切板
getClipboardData
setClipboardData
图片
chooseImage
saveImageToPhotosAlbum
getImageInfo
previewImage

位置
getLocation
网络
request
uploadFile
downloadFile
滚动
pageScrollTo
数据缓存
setStorage
setStorageSync
getStorage
getStorageSync
removeStorage
removeStorageSync
clearStorage
clearStorageSync
getStorageInfo
getStorageInfoSync
系统信息
getSystemInfo
getSystemInfoSync
震动 (iOS不支持)
vibrateLong
vibrateShort
ws
connectSocket
onSocketOpen
closeSocket
sendSocketMessage
onSocketMessage
onSocketError
onSocketClose
节点
createSelectorQuery 等
画布
createCanvasContext 等
交互
showModal
showToast
hideToast
showLoading
hideLoading
showActionSheet
导航
navigateTo
redirectTo
reLaunch
navigateBack
TabBar
switchTab
canIUse

最后欢迎试用娜娜奇,并给我们的项目加星 RubyLouvre/anu

发布于 2018-12-29