点击登录

米环7教程 表盘,小程序的构建工具zpm

  • 主题发起人 主题发起人 Lisk
  • 开始时间 开始时间

Lisk

Lv.4
🔥创作者
社区会员
米坛社区五周年纪念勋章
想必大家对于米7的小程序以及表盘已经了解,下面介绍编译文件与实际文件的相关内容

编译过程Zeppos提供的zeus内部使用的是zpm,主要分为图片,代码,以及quickjs(可选)部分

一、图片
图片部分zpm采用的是sharp,经过一堆算法最后完成转换

二、文件

js代码部分采用的是esbuild,是一个编译工具,把js进行弱编译


通过对比发现Page()是一个宏,编译后交给DeviceRuntimeCore.Page去注册程序相关事件,而$$xxx$$则是zeppos内部的api调用(吐槽:为什么不直接实现编译前的),而hmUI等是编译后真实存在的api

对于import,Zeppos是不支持原生支持的,zpm会把引入js文件按需编译进去

对于i18n的.po文件,编译后则会变成
languageTable,使用DeviceRuntimeCore.HmUtils.gettextFactory为$$app$$.globals添加一个gettext函数,完成语言适配

三、quickjs

对于quickjs部分这里引用Zeppos关于runtime的type字段的解释


属性必填描述
type运行时加载小程序的加载器类型,支持以下值: 0 当前值是默认值。表示该小程序用 QuickJS-js 解释器的加载器加载小程序,后缀名.js ;1 表示该小程序用 C 解释器的加载器加载小程序,后缀名 .c ;2 表示该小程序用 QuickJS-bytecode 解释器的加载器加载小程序,后缀名 .bin

而zpm可以通过
--jsc Compile JS file to C or bin, [--jsc c|bin] [默认值: ""]

来控制quickjs的使用,如果指定--jsc=c/bin,编译后会生成.js与.c/.bin文件并在app.json自动填上type

四、.zad&.zpk

通过file命令得知文件头
Zip archive data, at least v1.0 to extract, compression method=store

对于.zab与.zpk都是一样,最内部则是app-side.zip与device.zip,device.zip就是安装的.bin,而app-side由于众所周知的原因无法使用,在这里不做赘述
 
最后编辑:
想必大家对于米7的小程序以及表盘已经了解,下面介绍编译文件与实际文件的相关内容

编译过程Zeppos提供的zeus内部使用的是zpm,主要分为图片,代码,以及quickjs(可选)部分

一、图片
图片部分zpm采用的是sharp,经过一堆算法最后完成转换

二、文件

js代码部分采用的是esbuild,是一个编译工具,把js进行弱编译


通过对比发现Page()是一个宏,编译后交给DeviceRuntimeCore.Page去注册程序相关事件,而$$xxx$$则是zeppos内部的api调用(吐槽:为什么不直接实现编译前的),而hmUI等是编译后真实存在的api

对于import,Zeppos是不支持原生支持的,zpm会把引入js文件按需编译进去

对于i18n的.po文件,编译后则会变成
languageTable,使用DeviceRuntimeCore.HmUtils.gettextFactory为$$app$$.globals添加一个gettext函数,完成语言适配

三、quickjs

对于quickjs部分这里引用Zeppos关于runtime的type字段的解释


属性必填描述
type运行时加载小程序的加载器类型,支持以下值: 0 当前值是默认值。表示该小程序用 QuickJS-js 解释器的加载器加载小程序,后缀名.js ;1 表示该小程序用 C 解释器的加载器加载小程序,后缀名 .c ;2 表示该小程序用 QuickJS-bytecode 解释器的加载器加载小程序,后缀名 .bin

而zpm可以通过
--jsc Compile JS file to C or bin, [--jsc c|bin] [默认值: ""]

来控制quickjs的使用,如果指定--jsc=c/bin,编译后会生成.js与.c/.bin文件并在app.json自动填上type

四、.zad&.zpk

通过file命令得知文件头
Zip archive data, at least v1.0 to extract, compression method=store

对于.zad与.zpk都是一样,最内部则是app-side.zip与device.zip,device.zip就是安装的.bin,而app-side由于众所周知的原因无法使用,在这里不做赘述
......好像...是zab吧?
 
想必大家对于米7的小程序以及表盘已经了解,下面介绍编译文件与实际文件的相关内容

编译过程Zeppos提供的zeus内部使用的是zpm,主要分为图片,代码,以及quickjs(可选)部分

一、图片
图片部分zpm采用的是sharp,经过一堆算法最后完成转换

二、文件

js代码部分采用的是esbuild,是一个编译工具,把js进行弱编译


通过对比发现Page()是一个宏,编译后交给DeviceRuntimeCore.Page去注册程序相关事件,而$$xxx$$则是zeppos内部的api调用(吐槽:为什么不直接实现编译前的),而hmUI等是编译后真实存在的api

对于import,Zeppos是不支持原生支持的,zpm会把引入js文件按需编译进去

对于i18n的.po文件,编译后则会变成
languageTable,使用DeviceRuntimeCore.HmUtils.gettextFactory为$$app$$.globals添加一个gettext函数,完成语言适配

三、quickjs

对于quickjs部分这里引用Zeppos关于runtime的type字段的解释


属性必填描述
type运行时加载小程序的加载器类型,支持以下值: 0 当前值是默认值。表示该小程序用 QuickJS-js 解释器的加载器加载小程序,后缀名.js ;1 表示该小程序用 C 解释器的加载器加载小程序,后缀名 .c ;2 表示该小程序用 QuickJS-bytecode 解释器的加载器加载小程序,后缀名 .bin

而zpm可以通过
--jsc Compile JS file to C or bin, [--jsc c|bin] [默认值: ""]

来控制quickjs的使用,如果指定--jsc=c/bin,编译后会生成.js与.c/.bin文件并在app.json自动填上type

四、.zad&.zpk

通过file命令得知文件头
Zip archive data, at least v1.0 to extract, compression method=store

对于.zab与.zpk都是一样,最内部则是app-side.zip与device.zip,device.zip就是安装的.bin,而app-side由于众所周知的原因无法使用,在这里不做赘述
哇塞
 

*这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

相似主题

讨论
1K
9

问答
3K
31

Home 首页
Home 资源
News 发现
Account 我的
顶部