在 Lua 项目中管理开发依赖项的推荐方法是啥?
Posted
技术标签:
【中文标题】在 Lua 项目中管理开发依赖项的推荐方法是啥?【英文标题】:What is the recommended way to manage dev dependencies in Lua projects?在 Lua 项目中管理开发依赖项的推荐方法是什么? 【发布时间】:2019-01-26 13:14:44 【问题描述】:我正在构建一个 Lua 库(实际上是一个内部 kong 插件),这是我第一次使用 Lua - 更不用说用它编写生产代码了。
我已经把它变成了 luarock。据我所见,rockspec
让我可以将其他库指定为依赖项。但似乎没有这样的开发依赖的概念。例如,我的测试、模拟等所需的库......我不想让它们成为实际依赖项列表的一部分。
我已经将我的开发依赖项保留在依赖项列表中,但在 git push 之前将它们注释掉。这通常如何在生产 Lua 项目中解决?管理这些依赖项的推荐方法是什么?
【问题讨论】:
LuaRocks 3 有 build_depends 和 test_depends。但我没有和他们一起玩。 @moteus 谢谢.. 很高兴知道这一点。会试试看。 【参考方案1】:没有标准的 Lua 依赖管理系统,但你可以试试:
LuaRocks - 包含大量分布为岩石的 Lua 模块。安装 LuaRocks 后,安装很简单:luarocks install desired-package。在 Linux/Unix/Mac 上,这将安装到 /usr/local/share,lib/lua/5.1,Lua 解释器会在其中查找模块。
LuaDist - 旨在使用 Lua 和模块(dist)创建一个独立的独立目录。 LuaDist 中的所有内容都是基于 CMake 的,这意味着可以使用 CMake 支持的任何编译器/IDE 轻松编译它。 LuaDist 也有一个包含 Lua 模块和许多 C 依赖项/库的广泛存储库,它允许创建一个真正独立的 Lua“发行版”。安装与 LuaRocks 相同 - luadist install desired-package.
就个人而言,我更喜欢 LuaRocks。
【讨论】:
不知道 LuaDist。会检查出来。但我的主要问题是 LuaRocks 本身没有开发依赖的概念。 LuaDist 是否支持类似的东西? Luarocks 仅支持依赖项,现在 iirc 您也需要安装 shellscript 依赖项。这样您就可以更好地控制它们。 就像 --production 会通过时,不要安装其中的一些 目前,我可以使用luarocks install
来安装当前rock的所有依赖项。这对生产来说很好 - 即一旦我打包和分发岩石。但是在开发过程中,这块石头将依赖于额外的东西——比如测试和模拟库——它们不应该成为生产代码的一部分。我希望 rockspec
本身会支持它——类似于 Ruby 世界中的 Gemfile
或 NodeJS 世界中的 package.json
支持。但是,如果有一个明确的脚本来安装依赖项是唯一的方法,那么猜猜这是必须的。
@CodeMangler 那么,如果对你有帮助,你能接受我的回答吗?以上是关于在 Lua 项目中管理开发依赖项的推荐方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Spark 执行器节点上安装 Python 依赖项的最简单方法是啥?
在 Yarn 2 (berry) 中审计依赖项的最佳方法是啥?
在 jersey 项目中包含 jersey-bom 导入范围依赖项的目的是啥?