服务器开启需要从开启命令的运行目录下读取hotLoad.conf.js
文件信息。
作者在gitlab上准备了一个范例工程 ,git链接:ssh://git@gitlab.dev.zhaopin.com:2222/tianhao.li/ZPMVVTemplateToolSimplify.git
或http://gitlab.dev.zhaopin.com/tianhao.li/ZPMVVTemplateToolSimplify.git
可以直接使用里面的hotLoad.conf.js
作为您的配置文件,只需要把几个文件路径修改成你指定的即可
服务器操作的一些dyna命令 需要在这个配置文件的统计目录下运行
以下是使用者可以自定义的一些配置:
/**** 以下是模式代码 帮助我们安装依赖 请不要更改 *****/
const configs = {}
const { exec } = require('child_process');
const path = require('path');
const fs = require('fs-extra');
/******** 以上是模式代码 帮助我们安装依赖 请不要更改 ******/
configs.http = {
// http 服务端口 用于客户端主动拉取配置文件
"HttpPort": 8888,
// 指定 http服务开放的静态资源文件夹 可以配置多个元素
"staticDir": [
path.resolve(__dirname, "build/out"),
path.resolve(__dirname, "tangram")
]
}
configs.fileService = {
// 配置 dyna服务对文件改动的监听行为 可以配置多个元素
// path就是文件夹或文件绝对路径
// mode 是监听哪一种文件改动模式,可选的模式有:
// add(添加文件), addDir(添加文件夹), change(修改文件), unlink(删除文件), unlinkDir(删除文件夹)
// all(以上所有模式)
"watchDirs": [
{ 'path': path.resolve(__dirname, 'template'), "mode": ["change"] },
{ 'path': path.resolve(__dirname, 'tangram'), "mode": ["change"] }
],
// 服务监听到改动后回调 ,回调中传入了改动的文件路径,改动的mode,
// 最后使用者通过调用callback来告诉服务应该把什么样的数据推送给客户端
/*
callback的范例 :
第一个参数代表是否需要服务器通过websocket把数据推送给客户端, 传false将不会推送数据
第二个参数是个json : 将要推送给客户端的数据
callback(true, {
"template": base64_,
"type": baseName
})
*/
"before": (changedPath, mode, callback) => {},
}
configs.webSocket = {
// websocket的端口
"WSPort": 9999,
// 有客户端链接进来时 这个闭包会回调 , 返回false 将会拒绝这个客户端的链接
"clientConnectFilter": (conn) => {
return true
},
// 有客户端断开连接时 会走这个回调
"clientDisConnectCallback": (conn) => {
},
// 用户自定义的json数据 , websocket给客户端推送消息前将会走这个回调
// 如果有数据返回,将会把这些数据也一并推送给客户端
"customPushParams": (mode, filePath, ip, port) => {
return null
},
}