AdGuardHome工程windows下构建遇到的一些问题
工程地址:
https://github.com/AdguardTeam/AdGuardHome
构建中的一些注意点:
webpack编译客户端代码时报LF/CRLF错误
可以在client/src目录使用for /R %G in (*.js *.css) do dos2unix "%G"批量将CRLF替换为LF
更好的办法是在git clone之前先使用git config core.autocrlf查询,如果是true则使用git config --global core.autocrlf false设置,
这样下载下来的文件行结束符格式应该就是LF了;
客户端build-prod编译报NODE_ENV不是内部命令, 这个和windows bat环境语法有关
可以改成SET NODE_ENV=production && .\node_modules\.bin\webpack --config webpack.prod.js
或者直接在控制台进入client目录,手动输入上面两条指令,独立编译客户端
如果有build\static文件夹创建失败的错误,提示可以手动创建出这两个文件夹后,重新构建
GOPROXY设置
代理设置
同理可设置https_proxy,http://userName:password@proxy.com:proxyPort,注意password特殊字符需要转义,例如@=>%40
makefile中PATH=$(GOPATH)/bin:$(PATH),可能会由于路径中包含括号导致错误
处理办法去除后,临时将$(GOPATH)/bin添加到环境path变量中
执行make构建,如果有客户端编译的报错则可以不在make中编译客户端
服务端和客户端分别编译成功后,目录下会生成AdGuardHome.exe服务端程序,build\static目录下会生成客户端文件
双击AdGuardHome.exe则服务运行,可通过访问localhost:3000访问设置;
/*-------------------------------------------------------------------------------------------*/
题外话:
这个项目只是我希望将crates.io的dns解析为本机的一个尝试,发现在host中设置后,在命令行里解析确实生效了,但是浏览器始终不生效,于是就想是不是直接运行一个dns服务器就好了,结果还不行=>使用chrome.storage.local.set('DNShosts'..也不行,额....实际上犯了一个愚蠢的错误,忘了代理了设置了;
浏览器中可以方便的使用Proxy SwitchyOmega切换直连和代理,IPvFoo插件可以看到当前tab的域名解析,Siderite's DNS Resolver可以看到当前的浏览器dns缓存;
此外,AdGuardHome的前端采用react后端采用go,框架结构和整体设计是值得学习的;
- 点赞
- 收藏
- 关注作者
评论(0)