vivo-hap-toolkit
Version:
A command line toolkit for developing Quick Apps.
433 lines (285 loc) • 11.5 kB
Markdown
# vivo-hap-toolkit (vivo 定制版)
快应用开发者工具
## 如何使用
1. 全局安装 vivo-hap-toolkit
```shell
npm install -g vivo-hap-toolkit
```
2. 新建示例工程,方便开发者快速上手
```shell
hap init `<project-name>`
```
3. 安装 npm 依赖
```shell
cd `<project-name>`
npm install
```
4. 开始开发
```shell
npm run dev
# 或
npm run server -- --watch
```
5. 其他命令([请参考开发者文档][docs])
- [反馈问题](https://github.com/quickappcn/issues/issues/new/choose)
- [查看版本更新历史](https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=935)
## Changelog
## [1.8.3] - 2020-09-29
基于 [hap-toolkit] 1.8.1
### 更新
- 兼容`<style lang="scss">`情况
- 预览页面优化
- 移除模板中的 babel.config.js 文件,兼容自定义 babel.config.js 文件
### 新增
- 添加打包来源及其他数据埋点文件
- 动态导入 js,提示用户需增加打包参数
- 加入多平台适配文件的默认模板
### 修复
- 修复运行时报错 $app_define_wrap$不存在的问题
- 修复在分包时动态引入 js 的报错
- 修复了 1080 部分编译报错的提示
- 修复默认新建工程 menu:true,导致 menubar 面板无法显示
## [0.7.8] - 2020-07-07
基于 [hap-toolkit] 0.7.5
### 更新
- 非文本组件包含文本给出 warning 提示
- 卡片去掉 system.hostconnection/system.cipher 的接口声明检查
- 卡片增加 slider/list/list-item 支持
- 升级 devtool,支持修改 appData
### 新增
- toolkit 改造适配多终端。hap init 命令加入 -d --device [device-type-list]选项,指定项目运行的设备类型,device-type-list 为字符串,以逗号连接,如 "tv,phone,car"
- 增加编译动态引入 js 文件的能力,即开发者可以使用 import().then()的方式引入 js 文件
- 支持编译全局公共组件,将 app.ux 引入的公共组件单独抽离到 app-chunks.json 中,不影响 app.js 体积
- 编译错误显示于预览界面
- 新增 drawer 组件
- 添加 sitemap 校验
### 修复
- 优化部分报错信息
## [0.7.6] - 2020-06-17
基于 [hap-toolkit] 0.7.3
### 更新
- 使用内置 debug 证书,release 证书移至 sign 下,同时做兼容处理
- 不再提示相同选择器的合并
- 优化预览报错与 404 页面
- 媒体查询编译不对长度单位进行操作
- 去掉 system.configuration 的接口声明检查
- 重构优化部分代码
### 新增
- 增加 dp 单位
- 加入 onKey 事件,加入通用属性 focusable 与 div 的 enablevideofullscreencontainer 属性
- 新增 scroll view 组件
- 适配多终端
- 支持全局公共组件
### 修复
- 修复删除编译模式错误
- 媒体查询 bugfix,只写@media screen 无法匹配
- 引入 npm-run-all,修复 win 下并行执行脚本只执行第 1 个的问题
- 修复模拟器无法正确链接 adb 问题
## [0.7.4] - 2020-06-05
基于 [hap-toolkit] 0.7.2
### 修复
- 修复修改卡片内容,预览报错
## [0.7.2] - 2020-04-14
基于 [hap-toolkit] 0.7.2
### 更新
- 升级 devtool 以适配高版本 chrome
- 去掉 vivo-hap sign distFile signFile 命令
### 新增
- 增加编译模式
- 增加命令 --split-chunks-mode=smart 抽离公共 js 资源
- 增加 vivo-hap resign 对未签名文件进行签名
- 增加 selected 伪类选择器校验
- 增加其他组件属性事件等
### 修复
- 修复 background 渐变样式格式化无法正确展示
## [0.6.9] - 2019-11-18
基于 [hap-toolkit] 0.6.8
### 更新
### 新增
- 增加打包参数 --not-sign,打出待签名包
- 增加配置项目下 quickapp.config.js 里 signOnLine 字段,将待签名包发送至该字段地址进行签名打包(线上签名)
- 增加打包参数 --disable-sign-online,关闭线上签名
- 增加签名命令 hap sign distFile signFile,用指定签名文件对指定待签名包进行签名打包
### 修复
- 修复快应用工程打包没加 --app 参数报错问题
## [0.6.8] - 2019-11-07
基于 [hap-toolkit] 0.6.8
### 更新
- 更新对 animation 样式校验
- 兼容 android 10 以上版本的 USB 调试功能
- toolkit 支持字体颜色 auto|transparent|currentColor 的编译
- 对 theme 开头的样式值放开不校验
### 新增
- 增加 ux 项目提取公共 css 样式的能力
- 增加快应用项目的 e2e 测试能力
- 增加测试 ux 项目的代码覆盖率的能力
- 增加非独立包非 base 包不打入 i18n 文件的能力
- 增加分包可以配置独立的 icon 的能力
- 增加支持 component 节点的编译能力
- 增加说明:针对 sourcemap 定位不准确的问题,请在命令行中添加`--match-sourcemap`选项
### 修复
- 修复 0.6.4 预览页面问题
- 修复了 1060 部分编译报错的提示
- 修复获取不到设备信息时的 localWsPort 报错问题
## [0.6.4] - 2019-09-17
基于 [hap-toolkit] 0.6.3
### 更新
- 允许打包本地资源,去掉 -l --local-image 指令
- 更新预览的 web.js 文件
### 新增
- 添加新的主题属性:theme.activeColor,theme.borderTopRadius,theme.borderBottomRadius
- 增加了对多语言包打包的能力
- 支持地图组件展示自定义 View 的能力
### 修复
- 补充了 1050 部分功能校验: 1.通用 resize 事件 2.slider 的 block-color 样式 3.map 的 polygons 属性和 poitap 事件 4.system 的 resident 接口和 service 的 ad、health、exchange 接口
## [0.6.2] - 2019-07-31
基于 [hap-toolkit] 0.6.1
### 更新
- 改为默认打包卡片,去掉 --vivo 参数,增加 --app 改为打包块引用
- 默认允许打包本地资源,暂时保留 -l --local-image 指令,功能改为不允许
- 修改 build 模式默认 sourcemap 选项 devtool 为 cheap-module-eval-source-map,如果开发者想还原默认的 sourcemap 行为,可以通过 `-- --devtool source-map`设置
- 调试器 支持`chrome[google-chrome]`浏览器和`chromium[chromium-browser]`浏览器
### 新增
### 修复
- 修复`{{}}`内文本带有/img/修饰符的正则表达式不生效的问题
- 修复 vue-dsl 使用 less 语法 validate 校验错误的问题
- 修复预览命令时报的路径错误
- 修复 macos 特定版本启动问题
- 修复 font-family 样式字符串带引号的问题
## [0.5.4] - 2019-06-05
基于 [hap-toolkit] 0.5.4
### 更新
- 证书私钥缺失时候,错误输出到 webpack)
### 新增
- 支持 app 全局样式的编译
- 支持 span 嵌套 span 标签
### 修复
- 修复 vue-dsl release 问题
- 修复 IDE 拷贝图片失败问题
- 修复 vue-dsl css2json 插件缓存问题
## [0.4.6] - 2019-05-06
基于 [hap-toolkit] 0.4.6
### 更新
- 更新新建卡片工程模板
- 添加`--local-image`参数用于卡片使用本地图片(`build`,`release`,`watch`命令有效)
### 新增
- 添加`--disable-stream-pack`参数用于禁用流式包(`build`,`release`,`watch`命令有效)
- 支持自定义配置
- 支持`font-weight`
### 修复
- 修复了 manifest 中 minPlatformVersion 为 1040 时 不会转换 ES6 为 ES5 的编译时 JS 报错
- 修复了 hap update --force 时 JS 报错的问题
## [0.3.2] - 2019-03-05
基于 [hap-toolkit] 0.3.1
### 更新
- 1040 平台支持
- 不再支持`node 6`,要求`node 8`以上版本
- 不再创建备份文件
### 新增
- 新增`web`预览功能,打开服务`/preview`页面可使用浏览器预览快应用
- 新增`hap preview`子命令,可直接预览`rpk`文件或解压的`rpk`文件目录(包括`build`目录)
- 新增`hap view`子命令,可用于直接查看`rpk` 文件。详情可执行`hap view --help`查看
- 监听模式现在会监听`manifest.json`文件
### 修复
- 修复了`hap-toolkit`导致系统`adb` 不可使用的问题
- 修复其他若干缺陷
### 优化
- 优化了`hap init` 子命令,当文件夹存在时会询问输入新的应用名
- 优化了错误/警告信息提示
## [0.2.8] - 2019-2-22
### 修复
- 修复卡片打包无输出的问题
## [0.2.6] - 2019-1-29
基于 [hap-toolkit] 0.2.1
### 更新
- 支持分包
- `chrome devtools` 升级到 66
- 移除的`mix`命令(`hap`和`mix`完全一致)
- 为避免跟[hap-toolkit]冲突,添加了`vivo-hap`命令(同`hap`)
- 优化错误栈信息
- 稳定性优化
### 修复
- 修复初始化模块的 elisnt 配置无效的问题
- 修复若干 bug
- 修复`toolkit`误报使用`node`原生模块问题
## [0.2.5] - 2019-1-5
基于 [hap-toolkit] 0.1.1
### 更新
- 卡片支持使用[`block`][block]组件
- 打包卡片时不再检查 `router.entry` 字段
## [0.2.4] - 2018-12-18
基于 [hap-toolkit] 0.1.0
### 更新
- 项目 package.json 的依赖只有 [hap-toolkit],移除了其他依赖
- 支持可以自定义属性 data-xxx
- slot 可以作为 text 的子组件
- 支持 postcss 解析 css
- 不再检查 icon
### 修复
- 修复了图片资源检查的 bug
### 新增
- 支持 touchstart,touchmove,touchcancel,touchend 事件
- 支持 font-family 样式
- image 组件增加 complete、error 事件
- video 组件支持 muted 属性
- audio 组件支持 stop 方法
- 支持 CSS @font-face
- justify-content 支持 space-around
- background-image 支持网络图片地址
- input/textarea 组件增加 selectionchange 事件
- tab-content 组件增加 scrollable 属性
- input 组件支持动态切换 type 类型
- WebSocket 支持 ArrayBuffer
### [0.1.6] 2018-10-27
- 卡片允许使用 `service.stats`
- 增加系统颜色变量
- theme.activeColor 点击按压颜色
- theme.miniHeight 卡片最小高度(小卡片)
- theme.middleHeight 卡片最小高度(中卡片)
- theme.largeHeight 卡片最小高度(大卡片)
### [0.1.2] - 2018-10-10
- 修复路由设置 path 和路由名称不一致时使用了错误的路径的问题
- 提供 css 系统颜色变量
- theme.borderRadius
### [0.1.0] - 2018-09-30
- 提供 css 系统颜色变量
- theme.titleTextColor
- theme.textColor
- theme.buttonTextColor
- theme.buttonClickTextColor
- theme.backgroundColor
- 传入`--vivo` 参数时,`vivo-hap-toolkit` 会将只打包卡片;同时脱掉 `manifest.json` 中卡片不需要的数据,减少文件体积
### [0.0.42] - 2018-09-12
- 不再检查卡片缩略图
[docs]: https://doc.quickapp.cn/
[hap-toolkit]: https://www.npmjs.com/package/hap-toolkit
[block]: https://doc.quickapp.cn/tutorial/framework/framework-instructions.html#%E7%BB%84%E4%BB%B6-block
### 常见问题
#### 一、从小于 0.0.38 版本升级
若 hap-toolkit 从 0.0.37 升级上来,有比较大的改动,其中需要注意的是:
1. 项目下面的 .babelrc 文件变更为 babel.config.js 文件。babel.config.js 内容如:
```
module.exports = function(api) {
api.cache(true)
return {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-transform-modules-commonjs'],
babelrcRoots: ['.', 'node_modules']
}
}
```
**.babelrc 文件需要删除。**
2. 项目的基础依赖只需要以下模块,package.json 里的 devDependencies 字段如:
```
{
"devDependencies": {
"babel-eslint": "^10.0.1",
"eslint": "^5.12.1",
"eslint-plugin-hybrid": "0.0.5",
"hap-toolkit": "^0.4.3"
}
}
```
**修改后请将 node_modules 和 package-lock.json 删除,再重新安装依赖。**
[反馈问题](https://github.com/quickappcn/issues/issues/new/choose)
[查看版本更新历史](https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=935)