[
   {erlSync, [
      %% 接受fileSync的监听端口
      {listenPort, 12369},

      %% 编译命令 支持项目自带的编译命令 也可以用该项目自带的编译逻辑
      %% "rebar3 compile" | "start compile.bat" | "make"
      {compileCmd, undefined},

      %% 编译和加载以及其他一些日志的提示级别设置
      %% 有效值: all | none | [success | warnings | errors]
      %% 默认值: all
      {log, all},

      %% 这个参数用于设置特殊目录下的文件检查编译与加载
      %% 格式:{extraDirs, [{strategy(), [srcDirDescr()]}} | {srcDirs, undefined]}
      %% -type strategy() :: add | only | del.
      %% 如果 strategy() is only, 仅仅扫描指定目录下的文件编译与加载. 如果 strategy() is add,  会扫描添加的指定目录同步编译与加载.
      %% -type srcDirDescr() :: { Dir :: file:filename(), [Options :: compile_option()]}.
      %% 默认值：undefined 根据当前工作目录 和 已经加载的模块做来得出需要扫描的目录
      %%示例: {extraDirs, [{add, [{"./_build/default/lib/erlGbh", []}]}, {only, [{"./", []}]}, {del, [{"./_build", []}]}]}.
      %%{extraDirs, [{add, [{"./_build/default/lib/erlGbh", []}, {"./_build/default/lib/erlSync/ebin", []}]}, {only, [{"./", []}]}, {del, [{"./_build", []}]}]}
      {extraDirs, [{strategy(), [srcDirDescr()]}]},

      %% 这个参数用来设置 怎么处理 当beam文件的源文件目录不是当前工作的子目录时的情况
      %% 有效值： fix | allow | ignore
      %% * fix = 尝试在当前目录下查找源文件
      %% * allow = 不要做任何特别的事情，使用beam源文件原始路径查找该文件
      %% * ignore = 而忽略对其源路径的任何更改
      %% 默认值: fix
      {descendant, fix}
   ]}
].


