lua - 当我需要 'a.b' 时,有什么方法可以阻止 lua 将 'a/b' 转换为 'a.b' 吗?

标签 lua require

例如:

require('a.b.c/foo.lua')

Lua 引擎会将'a.b.c/...' 翻译成'a/b/c/...' 以在模式列表中搜索文件,对吗? 当'a.b.c'是真正的文件夹名称时会有什么问题吗?如果是,如何解决?

最佳答案

如果您的模块位于包含 . 作为其名称的一部分的目录中,则很难使用 require 将其拉入,因为无法“转义” . 所以 \ 替换没有完成。

但是,仍然可以通过 package.path 间接指向 lua 查找正确的位置:

local restorepath = package.path
package.path = "./a.b.c/?.lua"
require 'foo'
package.path = restorepath

但我建议您首先尝试重组您的项目目录结构,以便它更好地与 lua 的 require 一起工作。否则,您将不得不继续使用您可能拥有的其他模块执行上述操作。

关于lua - 当我需要 'a.b' 时,有什么方法可以阻止 lua 将 'a/b' 转换为 'a.b' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189949/

相关文章:

sockets - 从没有数据大小的lua tcp套接字接收数据

Windows 上的 Luarocks 无法识别我的 lua_libdir

java - Redisson - RMapCache 将 2 个附加字节添加到值前面

Node.js 需要模块子文件夹

ruby-on-rails - Rails,gem,require,zsh和错误消息!由于与 “require”有关的问题,我无法加载我的应用

javascript - 使用 require 设置原型(prototype)自执行函数时浏览器上下文

lua - Lua 自定义类中的 __tostring

python - 从 C++ 运行 .py 脚本

javascript - 有没有办法在 <script> 标签中运行 Node.js?

PHP Phar - file_exists() 问题