服务器开启需要从开启命令的运行目录下读取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命令 需要在这个配置文件的统计目录下运行
    以下是使用者可以自定义的一些配置:

    1. /**** 以下是模式代码 帮助我们安装依赖 请不要更改 *****/
    2. const configs = {}
    3. const { exec } = require('child_process');
    4. const path = require('path');
    5. const fs = require('fs-extra');
    6. /******** 以上是模式代码 帮助我们安装依赖 请不要更改 ******/
    7. configs.http = {
    8. // http 服务端口 用于客户端主动拉取配置文件
    9. "HttpPort": 8888,
    10. // 指定 http服务开放的静态资源文件夹 可以配置多个元素
    11. "staticDir": [
    12. path.resolve(__dirname, "build/out"),
    13. path.resolve(__dirname, "tangram")
    14. ]
    15. }
    16. configs.fileService = {
    17. // 配置 dyna服务对文件改动的监听行为 可以配置多个元素
    18. // path就是文件夹或文件绝对路径
    19. // mode 是监听哪一种文件改动模式,可选的模式有:
    20. // add(添加文件), addDir(添加文件夹), change(修改文件), unlink(删除文件), unlinkDir(删除文件夹)
    21. // all(以上所有模式)
    22. "watchDirs": [
    23. { 'path': path.resolve(__dirname, 'template'), "mode": ["change"] },
    24. { 'path': path.resolve(__dirname, 'tangram'), "mode": ["change"] }
    25. ],
    26. // 服务监听到改动后回调 ,回调中传入了改动的文件路径,改动的mode,
    27. // 最后使用者通过调用callback来告诉服务应该把什么样的数据推送给客户端
    28. /*
    29. callback的范例 :
    30. 第一个参数代表是否需要服务器通过websocket把数据推送给客户端, 传false将不会推送数据
    31. 第二个参数是个json : 将要推送给客户端的数据
    32. callback(true, {
    33. "template": base64_,
    34. "type": baseName
    35. })
    36. */
    37. "before": (changedPath, mode, callback) => {},
    38. }
    39. configs.webSocket = {
    40. // websocket的端口
    41. "WSPort": 9999,
    42. // 有客户端链接进来时 这个闭包会回调 , 返回false 将会拒绝这个客户端的链接
    43. "clientConnectFilter": (conn) => {
    44. return true
    45. },
    46. // 有客户端断开连接时 会走这个回调
    47. "clientDisConnectCallback": (conn) => {
    48. },
    49. // 用户自定义的json数据 , websocket给客户端推送消息前将会走这个回调
    50. // 如果有数据返回,将会把这些数据也一并推送给客户端
    51. "customPushParams": (mode, filePath, ip, port) => {
    52. return null
    53. },
    54. }