luvit/luvit

Cannot find any built-in modules when writing code in subdirectories

coderczp opened this issue · 2 comments

luvit version: 2.17.0
luvi version: v2.10.1
rex version: 8.37 2015-04-28
libuv version: 1.34.1
ssl version: OpenSSL 1.1.1d 10 Sep 2019, lua-openssl 0.7.7

os:macOS 10.15.7 (19H2)

directories
xxx/luas
cluster/mq.lua
main.lua

cluster/mq.lua
local core = require("core")

main.lua
package.path = module.dir .. "/?.lua;" .. package.path
local mq = require("cluster/mq")

cd xxx/luas
luvit main.lua

error:
module 'core' not found:
no field package.preload['core']
no file './core.lua'
no file '/usr/local/share/luajit-2.1.0-beta3/core.lua'
no file '/usr/local/share/lua/5.1/core.lua'
no file '/usr/local/share/lua/5.1/core/init.lua'
no file './core.so'
no file '/usr/local/lib/lua/5.1/core.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'error'
[string "bundle:deps/require.lua"]:279: in function 'require'
[string "xxx/luas/main.lua:10: in function 'fn'
[string "bundle:deps/require.lua"]:310: in function 'require'
[string "bundle:/main.lua"]:118: in function 'main'
[string "bundle:/init.lua"]:49: in function <[string "bundle:/init.lua"]:47>
[C]: in function 'xpcall'
[string "bundle:/init.lua"]:47: in function 'fn'
[string "bundle:deps/require.lua"]:310: in function <[string "bundle:deps/require.lua"]:266>

I think this is an issue with

local mq = require("cluster/mq")

Try changing it to

local mq = require("./cluster/mq")

Yeah, looks like #857 (comment)