0

我正在编写一个小型代码项目(或模块),并愿意用 3 种不同的语言实现相同的技术,即:Python、JS、Lua。我想制作一个包含所有这些语言的所有代码的单个 github 存储库。

我的问题是:如何将其作为可安装的包,适用于所有三种语言?IE:

对于 Python,我希望它可以通过

pip install packagex

对于 Lua,我希望它可以通过以下方式获得:

luarocks install packagex

同样对于 JS/Node:

npm install packagex

是的,我可以为三个不同的平台创建三个不同的存储库,并将它们中的每一个注册为可安装包,但我想将所有内容保存在一个源存储库中。我应该如何进行?谢谢。

4

1 回答 1

0

我可以回答问题的 LuaRocks 部分:

LuaRocks

如果您选择为每种语言创建子目录并且 Lua 的内容位于 下/lua,您可以按照创建 rockspec 文件的通常过程,并添加一个source.dir条目,告诉它在子目录中工作。因此,在上面链接的示例中,您可以执行以下操作:

source = {
   url = "git://github.com/me/luafruits",
   tag = "v1.0",
   dir = "luafruits/lua"
}

source.dirrockspec 格式的其余部分一起记录:

  • source.dir (string) - 解压缩源存档时创建的目录的名称。如果可以从 source.file 字段推断,则可以省略。示例:“luasocket-2.0.1”

对于 Git 存储库,source.dir默认情况下推断为路径的最后一个组件,但如果您的代码位于子目录中,您可以随意重新定义它。rockspec 中的所有其他路径都将与 this 相关source.dir

或者,您可以改为添加lua/到您的build部分的所有路径。在文档中的“luafruits”示例中,请注意所有源都存在于src/. 只需使用lua/它就可以了,无需使用source.dir.

于 2016-05-27T18:27:52.030 回答