zoukankan      html  css  js  c++  java
  • luarocks 自定义包发布试用

    luarocks 是一个方便的lua 包管理工具,可以帮助我们实现代码的复用以及分享

    注册账户

    我使用了gihtub 的账户,直接点击&&授权即可

    创建一个简单的luarocks 包项目

    • 创建rockspec 文件
     
    使用luarocks 工具
    luarocks-5.1 write_rockspec --lua-version=5.1
     
    • 修改rockspec 内容
      主要是指定module、版本以及源码的相关信息
     
    比如我的,注意source url 中git 协议的处理,注意使用git://  https:// 的有问题
    package = "lua-rocks-app-project"
    version = "1.0.0-2"
    source = {
       url = "git://github.com/rongfengliang/luarocks-packagedemo.git"
    }
    description = {
       homepage = "https://github.com/rongfengliang/luarocks-packagedemo.git",
       license = "unlicense"
    }
    dependencies = {
       "lua ~> 5.1"
    }
    build = {
       type = "builtin",
       modules = {
          ["users.login"]="users/login.lua"
       }
    }
     
     
    • 简单代码
      就是一个简单的函数
     
    users/login.lua
    function init(name,password)
       return name,password
    end
    return init;
     
     
    • 创建upload apikey

    上传包

     
    luarocks upload lua-rocks-app-project-1.0.0-2.rockspec --api-key=${api-key}
     
     

    调用自己编写的包

    使用openresty,同时集成了docker 方便测试

    • dockerfile
     
    FROM openresty/openresty:alpine-fat
    LABEL author="1141591465@qq.com"
    RUN /usr/local/openresty/luajit/bin/luarocks install lua-rocks-app-project ## 按照包
     
     
    • 调用代码
    local userslogin = require("users.login")
    local json = require("cjson")
    function logininfo(name,pass)
       local name,pass = userslogin(name,pass)
        local loginresult= {
            name = name,
            pass = pass
        }
        ngx.say(json.encode(loginresult))
    end
    return logininfo
    more_set_headers 'Content-Type application/json';
    content_by_lua_block {
        require("app/init")("dalong","admin");
    }
     
     
    • docker-compose 文件
    version: "3"
    services:
      app:
       build: ./
       ports:
       - "8080:80"
       volumes:
       - "./app/:/opt/app/"
       - "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
     
     
    • 效果

    说明

    代码很简单,只是为了方便测试使用而已,具体的代码可以参考github

    参考资料

    https://github.com/rongfengliang/luarocks-packagedemo
    https://github.com/rongfengliang/openresty_luarocksmodule-demo

  • 相关阅读:
    页面上一些小icon的制作方法及技术选择
    移动端h5页面touch事件与点击穿透问题
    浅析 jquerydom操作方法--remove(),detach(),empty()
    jquery中attr和prop的区别
    正则表达式的基本入门
    浏览器对中文标点符号折行的处理差异
    关于阴影:box-shadow
    ubuntu nginx ftp 配置图片服务器
    ubuntu 18 安装ftp 并远程配置访问用户
    WIn10系统软件默认安装c盘后消失看不见问题
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10212846.html
Copyright © 2011-2022 走看看