Si tengo una estructura de archivos como esto:carga Lua-archivos por ruta relativa
./main.lua
./mylib/mylib.lua
./mylib/mylib-utils.lua
./mylib/mylib-helpers.lua
./mylib/mylib-other-stuff.lua
De main.lua
el archivo mylib.lua
se puede cargar con ruta completa require('mylib.mylib')
. Pero dentro de mylib.lua
también me gustaría cargar otros módulos necesarios y no tengo ganas de especificar siempre la ruta completa (por ejemplo, mylib.mylib-utils
). Si alguna vez decidiera mover la carpeta, tendré que buscar y reemplazar mucho. ¿Hay alguna manera de usar solo la parte relativa de la ruta?
UPD. Estoy usando Lua con Corona SDK, si eso importa.
Gracias, esto funcionó para cargar archivos. Pero cuando accedo a las propiedades públicas del módulo, aún necesito especificar la ruta completa (por ejemplo, 'lib.foo.bar.some_value'). – RocketR
Eso no tiene nada que ver con la carga de archivos; simplemente refleja cómo ha elegido estructurar su Lua.Puede (por ejemplo) devolver una tabla en cada requerimiento y almacenarla en una var local: 'local baz = require (folderOfThisFile .. 'baz')' y luego hacer 'baz.some_value' – kikito
Cool, no lo hice saber acerca de las funciones externas '...' siendo la cadena que se utilizó para requerir el archivo. –