小程序项目
虎牙小程序项目就是一个“纯”前端项目,所以不需要指定的开发者工具也能进行开发。我们来看一下执行npx hyext init之后生成的项目大概由哪些部分组成。
目录结构
quick-start$ tree -I node_modules
.
├── index.js /* 观众端入口 */
├── index_streamer.js /* 主播端入口 */
├── package-lock.json
├── package.json
├── project.config.json /* 小程序项目配置 */
├── streamer /* 主播端业务 */
│ ├── app.hycss
│ └── app.js
└── viewer /* 观众端业务 */
├── app.hycss
└── app.js
小程序项目配置
{
"name": "quick-start", /* 小程序项目名称 */
"outputPath": "dist", /* 终端配置输出的路径,建议保留默认值 */
"releasePath": "release", /* 小程序源码压缩打包的路径,建议保留默认值 */
"ignore": [ /* ... */ ], /* 压缩打包忽略的文件,可以在保留默认值的前提下增加自定义的内容 */
"builder": { /* 构建器的配置 */
"name": "@hyext/builder-beyond", /* 默认的虎牙小程序构建器,建议保留默认值 */
"config": {
"hostId": "huyaext", /* 虎牙小程序业务标识,必须保留默认值 */
"webTitle": "虎牙小程序",
"designWidth": 750, /* 设计稿页面的宽度 */
"buildConfig": { /* 构建配置 */
"H5": [ /* 构建配置,数据结构跟上面的一致,平台需要根据小程序类型指定为web或者pc */
/* ... */
]
},
"https": true, /* 开发服务是否启用https,由于需要在虎牙直播WEB主站预览小程序,建议保留默认值 */
"host": "localhost", /* 开发服务的主机名,可以是IP地址。如果本机有多个IP地址,必须显式指定一个 */
"useCssLoader": true, /* 是否启动hycss语法糖,建议保留默认值 */
"port": 18080, /* 开发服务的端口 */
"enableLint": { /* 是否启用静态检查 */
"stylelint": false,
"eslint": false
},
"compileNodeModules": [] /* 需要编译的业务模块,有一些第三方的组件是通过源码提供的,集成的时候需要在这个字段显式指定 */
}
}
}
入口
以观众端入口(./index.js)为例:
import { registerApp } from '@hyext-beyond/core' /* 引入注册方法 */
import App from './viewer/app' /* 引入业务的具体内容,一个React组件 */
registerApp('quick-start', App) /* 把这个组件注册到小程序的项目名 */
主播端入口(./index_streamer.js)跟观众端入口唯一的不同就是引入的业务不同而已。
业务内容
由于业务内容就是一个普通的React组件,我们以生成的观众端的模版文件为例。模版生成的业务有两个文件:
import { UI } from '@hyext/hy-ui' /* 引入跨平台组件 */
import React, { Component } from 'react' /* 引入React */
import './app.hycss' /* 引入hycss样式文件 */
const { View, Text } = UI
class App extends Component { /* 业务组件,就是一个普通的React组件 */
render () {
return (
<View className="container"><Text>hello world</Text></View>
)
}
}
export default App /* 导出React组件 */
第一个是React组件的js文件,详细的信息可以查看技术框架的相关内容。
.container { /* 仅支持类选择器 */
display: flex; /* 支持大部分的css规则 */
flex: 1;
justify-content: center;
align-items: center;
}
第二个是虎牙小程序平台提供的语法糖,跨平台通用的*.hycss文件,是css的一个子集,详细的信息可以查看技术框架的相关内容。
模版生成的项目结构和相关文件就这么多。当然,这个模版只是渲染了一个普通的React组件,虎牙小程序平台还提供了强大的JS SDK供开发者使用虎牙直播的技术能力,相关的内容可以查看场景文档。