# 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

## [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)
