
生活随记一篇
screenshot-to-code 是近期在github上很火的GPT衍生项目,其提供web界面去调用GPT-vision接口,进行图生代码的转换。
在这基础上,还做了前端框架融合(生成的代码使用tailwindcss)、server服务集成(代码在backend文件夹中)。
在上线两个月后,star数达到了3.1万,热度很高,AI的风潮确实十分强劲。

使用效果可以看这个视频
下面来简单介绍下,在安装部署screenshot-to-code过程中可能遇到的问题。将分成两个部分来入手介绍。
screenshot-to-code项目中包含了前端和后端两部分,分别在frontend、backend文件夹中。需要分别将前后端项目启动,才算完整运行。
前端部分使用yarn作依赖管理,node作webui的server环境,后端部分则使用poetry作依赖管理,python作api的server环境。同时,为了避免多个环境依赖问题,项目使用docker多镜像联合运行,所以需要本地机器安装了docker和docker-compose。
最后,项目的核心能力是通过调用GPT-vision接口实现,所以还需要我们拥有openai的OPENAI_API_KEY,KEY需要我们在openai官网上开通GPT4的会员才能使用(GPT4需要付费使用,价格可以参考Pricing)。
简单对上面的概念做下介绍:
yarn: JavaScript生态中的一种包管理工具poetry: Python生态中的一种包管理工具docker: 虚拟化工具,可分割出独立的环境模块,并在其中完成复杂依赖的安装,且不会影响宿主机器和宿主上的其他程序docker-compose: 将由docker虚拟化出的多个环境模块联合到一起的工具,比如将前端的模块、后端的模块联合到一起,组成网站
1 | ``` js |
提示 config.less 文件 编译不识别 error: [LessError: Unrecognised input]
var isFinished = parserInput.i >= input.length中的isFinished 为fasle 导致报错parserInput.i 是0parserInput.i 给值的地方browser_plugin_template/node_modules/_less@4.2.0@less/lib/less/parser/parser.js1 | try { |
end的地方就报错了,问题在于 root = new tree_1.default.Ruleset(null, this.parsers.primary()); 这句的调用,这个逻辑从名字上看是以树状结构去搜索解析css的样式。parserInput.i 值不对,那么就监听所有可以给 parserInput.i 赋值的地方,看报错前最后一次调用是谁发起的parserInput.i 被赋值的地方很多,而且很难以收口debugger,这意味着,通过less插件代码,定位错误原因的努力失败