Window下基于ZeroBrane Studio开发调试OpenResty

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lupengfei1009/article/details/86071905

ZeroBrane Studio简介

ZeroBrane Studio是一个轻量级的Lua IDE,具有代码完成,语法高亮,实时编码,代码分析器以及Lua 5.1,Lua 5.2,Lua 5.3, LuaJIT和其他Lua引擎的调试支持。

它对于经验丰富的开发人员来说功能丰富且可扩展,而且对于初学者来说简单且即时可用(经过测试,没有编程经验的中学生和高中生)。与Eclipse和IntelliJ不同,它占地面积小,可以使用Lua完全自定义。与TextMate和Sublime Text不同,它包含一个远程调试器和一个完整的IDE功能集。与Decoda不同,它可以在Windows,macOS和Linux上运行,并通过设备上的调试支持各种Lua版本。

ZeroBrane Studio还提供了几个独特的功能:用于即时反馈的实时编码,用于提供最少上下文切换的指令的Markdown格式,以及用于学习Lua或熟悉编程的集成交互式材料。

安装包中包含一些在所有支持的平台上为Lua 5.1,5.2和5.3版本编译的最流行的Lua库(luasocket, luafilesystem, luasec和lpeg)。

对于那些对游戏和移动开发感兴趣的人,IDE支持 LÖVE, Corona, Moai, Gideros, Marmalade Quick, Cocos2d-x和其他引擎的调试 。它也支持普通的Lua调试的 OpenResty/Nginx, Redis, Torch7, Wireshark, GSL-shell, Adobe Lightroom, Lapis, Moonscript, home automation以及更多。

ZeroBrane Studio功能亮点

  • 小巧,可移植,开源和跨平台(Windows,macOS和Linux);
  • 自动完成功能,关键字和自定义API;
  • 110多种语言和文件格式的语法高亮和折叠;
  • 具有自动刷新功能的项目视图,能够从列表中隐藏文件和目录;
  • 交互式控制台,用于测试本地和远程执行的Lua代码片段;
  • 集成调试器,支持本地和远程调试,包括跨平台和设备上调试;
  • 使用Lua, LÖVE, Gideros, Moai, Corona,GSL-Shell和其他Lua引擎进行实时编码 ;
  • 多语言支持,翻译为法语,西班牙语,俄语,德语,中文,世界语,意大利语,保加利亚语和巴西葡萄牙语语言和文档,以添加您自己的语言;
  • 50+扩展包在包库 ;
  • 模糊搜索的文件,符号,和库函数,函数的轮廓,和更多。

资源下载

配置OpenResty与ZeroBraneStudio的关联

  • 进入OpenResty下的nginx的配置,并添加以下配置
    F:\DATA/software/other/ZeroBraneStudio这部分ZeroBraneStudio的软件路径
	lua_package_path 'F:\DATA/software/other/ZeroBraneStudio/lualibs/?/?.lua;F:\DATA/software/other/ZeroBraneStudio/lualibs/?.lua;;';
    lua_package_cpath 'F:\DATA/software/other/ZeroBraneStudio/bin/clibs/?.dll;;';

编写测试Lua

  • 编写Lua测试文件
    require(“mobdebug”).start(“127.0.0.1”)是很重要的一行代码,debug会进入到这行代码的后一行进行调试
    require("mobdebug").start("127.0.0.1")
    --用于接收前端数据的对象
    local args=nil
    --获取前端的请求方式 并获取传递的参数   
    local request_method = ngx.var.request_method
    --判断是get请求还是post请求并分别拿出相应的数据
    if"GET" == request_method then
            args = ngx.req.get_uri_args()
    elseif "POST" == request_method then
            ngx.req.read_body()
            args = ngx.req.get_post_args()
            --兼容请求使用post请求,但是传参以get方式传造成的无法获取到数据的bug
            if (args == nil or args.data == null) then
                    args = ngx.req.get_uri_args()
            end
    end
    
    --获取前端传递的name值
    local name = args.name
    --响应前端
    ngx.say("hello:"..name)
    

配置OpenResty中Lua文件的关联

  • 修改OpenResty的Nginx配置

    		location /luatest
    		{
    			default_type text/html;
    			#这里的lua文件的路径为绝对路径,请根据自己安装的实际路径填写
    			#记得斜杠是/这个,从window中拷贝出来的是\这样,这样是有问题的,务必注意
    			content_by_lua_file F:/DATA/software/other/openresty-1.13.6.2-win32/lualib/testcode/testlua.lua;
    		}
    

  • 重启OpenResty下的Nginx

ZeroBrane Studio调试设置

  • 开启ZeroBrane Studio的调试模式

  • 添加需要查看的变量

ZeroBrane Studio调试

  • 请求OpenResty下的对应Lua的请求地址
    如:http://127.0.0.1/luatest?name=Lua

    ZeroBrane Studio会进入绿色箭头对应行的代码

  • 调试快捷键

    • F10 下一行
    • Shift+F10 跳过调试
    • Ctrl +F10 跳过当前function
    • Shift + F5 终止运行
    • F6 运行
    • F5 debug运行
  • 调试

常见问题

  • 路径问题
    可能会存在Lua的路径错误导致Lua无法正常运行,检查各个配置的路径即可
  • 不是有效的 Win32 应用程序
    这个就是安装的64位的OpenResty,换成32位的即可

到这里即可使用ZeroBrane Studio进行OpenResty的开发调试了

猜你喜欢

转载自blog.csdn.net/lupengfei1009/article/details/86071905