58fair fair_compiler配套设置提供fair动态化界面开发调试效率

124 阅读1分钟

在开发fair动态化页面时,使用build_runner构建fair资源产物:

flutter packages pub run build_runner build --delete-conflicting-outputs

Fair为我们提供了AS插件FairTemplate 一键模版工程和一键打包以及开发者选项界面,提供了启动本地fair热更新服务,远程加载fair动态界面的方式进行开发调试,具体操作为: 传送门

但这里可能会出现一个情况就是端口占用,本地服务之前启动过服务比如是启动后电脑系统重启,则会出现:

Kill last process... Pid::67849...
Start local fair server...
>>>>>> 0::INFO::2023-09-08 15:46:30.377459::SocketException: Failed to create server socket (OS Error: Address already in use, errno = 48), address = 0.0.0.0, port = 8080
Unhandled exception:
SocketException: Failed to create server socket (OS Error: Address already in use, errno = 48), address = 0.0.0.0, port = 8080
#0      startServer (file:///Users/xx/Documents/Flutter/faircli/FairServer/bin/server.dart:40)
<asynchronous suspension>
Process finished with exit code 0

此时通过下面命令查找占用端口号的进程:

lsof -i:8080

在找到对应进程ID,kill掉:

kill PID

再次启动服务ok

flutter packages pub run build_runner build --delete-conflicting-outputs

fair产物构建命令默认输出目录是在build/fair目录下面:

如果不使用fairpushy热更新服务,就只使用本地fair资源的方式开发调试动态界面,默认需要手动拷贝产物到项目中,这里介绍一个fair_compiler的一个比较实用的配置:

在当前项目添加 fair_config.json文件:

{
  "exportDir":"./assets/fair"
}

exportDir可以填写绝对路径,也可是相对路径

则会自动将build/fair产物拷贝到assets路径下,不用每次手动拷贝,提高开发调试效率