所以我有以下代码,问题是当我循环遍历数组中的每个文件并尝试要求文件路径时,它给我一个找不到模块的错误。
local Commands = {}
function getCommands()
local readdir = fs.readdir
local readdirRecursive = require('luvit-walk').readdirRecursive
readdirRecursive('./Desktop/Discord/ArtifexBot/Discordia/resources/commands/', function(k, files)
for i,v in pairs(files) do
if v:match(".lua") and not v:match("commands.lua") then
local cmd = v:match("([^/]-)%..-$")
fs.readlink(v,function(err,thing)
print(err,thing)
end)
Commands[cmd] = require(v)
end
end
end)
end
getCommands()
递归函数有效,文件只是路径的字符串。但经过研究,require()需要的是相对路径,而不是直接路径。所以我想我需要用 fs 做一些事情来使文件路径成为相对路径?我在任何地方都找不到答案。
Thanks!
require
根本不走路。标准加载器只是根据其算法使用您以模式序列形式提供的字符串。
您想要的是在磁盘上加载并执行给定的 Lua 脚本。这不是拼写的require
;这是拼写的dofile
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)