安装Lua
首先,在终端中运行 lua -v 来检查系统上是否已经安装了 Lua。
{ lua -v
Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio
macOS操作系统
{ brew install lua
Linux操作系统
{ apt install lua5.3
Hello World
安装 Lua 后,创建一个简单的测试程序来验证一切是否按预期工作。
-- src/main.lua
local greeting = "Hello, World."
print(greeting)
在终端中执行lua脚本:
{ lua src/main.lua
Hello, World.
使用 LuaRocks 进行依赖管理
LuaRocks 是 Lua 包管理器,用于管理项目依赖项,需要在系统上安装 LuaRocks 命令行工具。
macOS
{ brew install luarocks
Linux
{ apt install luarocks
项目文件夹设置
安装 LuaRocks 后,使用 init 命令设置项目。
{ luarocks init --lua-versions "5.1,5.2,5.3,5.4"
该 init 命令将执行以下几项操作:
- 创建 lua_module 文件夹并存储所有已安装的依赖项。
- 检测 src/main.lua 作为程序的主要入口点。
- 添加两个执行 lua 和 luarocks 命令的快捷方式。
- 添加一个 .luarocks 一些配置文件的文件夹,并将该目录标记为 LuaRocks 的根文件夹。
- 创建或添加 .gitignore 文件。
- 创建 .rockspec 文件
.gitignore文件
luarocks init 命 令会自动生成一个 .gitignore ,并添加以下配置。
/luarocks /lua /lua_modules /.luarocks
.rockspec文件
.rockspec 文件定义项目的属性,如名称、版本和使用的依赖项。
rockspec_format = "3.0"
source.url 可以是指向项目的 git 存储库,也可以是其他存储库类型或 URL。
source = { url = "https://github.com/demo/lua-demo.git" }
description 包含摘要、项目主页、许可证等信息。
description = { summary = "the Lua demo repository", homepage = "https://demo/lua/", license = "MIT" }
dependencies 用户添加项目的依赖项。
dependencies = { "lua >= 5.1, < 5.5" }
build 项目的构建设置
build = { type = "builtin", modules = { main = "src/main.lua" } }
最后使用 luarocks lint 命令,验证的文件的正确性。
{ luarocks lint lua-demo.rockspec
安装模块
安装inspect 模块,该模块提供了在 Lua 中打印值以进行检查或调试的简单方法。
{ luarocks install inspect
然后将依赖项添加到 .rockspec 文件中。
dependencies = { "lua >= 5.1, < 5.5", "inspect >= 3.1" }
当从代码仓库中拉取项目代码后,执行如下命令,用来在项目中安装项目所需的所有依赖项。
{ luarocks install --deps-only lua-demo.rockspec
使用 inspect 打印,并观察打印结果。
-- src/main.lua local
inspect = require("inspect")
local output = { "Hello, world.", 42 }
print(inspect(output))
解析模块路径
可以在 src/setup.lua 文 件配置 package.path 和 package.cpath 两个路径变量。
-- src/setup.lua
local version = _VERSION:match("%d+%.%d+")
package.path = 'lua_modules/share/lua/' .. version .. '/?.lua;lua_modules/share/lua/' .. version .. '/?/init.lua;' .. package.path package.cpath = 'lua_modules/lib/lua/' .. version .. '/?.so;' .. package.cpath
通过 lua 命令 -l 的选项来执行:
{ lua -l src/setup src/main.lua
LuaRocks
使用 LuaRocks 时,务必注意软件包的安装位置。通过 luarocks init 设置项目后,所有软件包都安装在本地的项目文件夹内。
不在项目目录中的另一种选择是使用 --local 标志。例如,在当前工作目录中,需要使用 --tree 该标志,将路径传递给文件夹。
{ luarocks install --tree=lua_modules inspect
启用本地脚本
使用 LuaRocks 安装可执行文件时,这些二进制文件会安装在 lua_modules/bin 目录中。
通常情况下,要执行脚本,需要使用完整路径。
{ ./lua_modules/bin/some-script --argument ...
为了简化这一点,可以将本地 bin 文件夹添加到系统 PATH 中。
# .envrc export LUA_INIT="@src/setup.lua" export PATH={PATH:./lua_modules/bin
在项目目录中执行时,可以简化为以下命令。
{ some-script --argument ...
自动格式化代码
LuaFormatter 是lua的代码格式化工具,通过 LuaRocks 安装:
{ luarocks install luaformatter
使用luaformatter工具对代码进行格式化:
{ lua-format --in-place src/**/*.lua
静态分析
如果想对项目代码进行 lint(代码质量分析或检测),可以Luacheck工具:
{ luarocks install luacheck
然后使用luacheck命令验证lua文件:
{ luacheck src
Checking src/main.lua OK
Checking src/setup.lua OK
Total: 0 warnings / 0 errors in 2 files