如何在一个NPM包中打包Ruby代码?

时间:2014-05-12 13:39:57

标签: ruby node.js npm

我正在编写一个开源的节点模块,并且依赖于某些Ruby代码(有关详细信息,请参阅Can I include a Ruby Gem in a Node.js project?)。我制作了一个需要一些宝石的Ruby项目,所有这些都很有效。在我的node_module中,我想通过exec将它连接到Ruby代码。

但现在还有Ruby依赖项。那么我可以以某种方式指定Ruby版本,以及运行我的节点包所需的gemset吗?

也许是模棱两可的问题。我可以澄清是否有任何不清楚的地方。

2 个答案:

答案 0 :(得分:2)

我认为您不能/应该指定在执行代码时使用的Ruby版本。这应该是图书馆消费者的选择。由于您希望使用exec执行代码,因此库使用者将具有使ruby可供节点进程访问的附加责任。作为图书馆开发人员,这不会取决于你。

至于依赖项/ gemsets,只需使用bundler。

答案 1 :(得分:1)

也许你可以做这样的事情 - 没有更多的信息,很难说。

  1. 在ruby方面,构建你的gem来做它需要做的任何事情,然后为它添加一个rake任务。如何构建此rake任务显然取决于项目的需求及其使用方式,但它将为您提供从外部进行接口的方法。

  2. 在'中间'构建一个包含RVM的bash脚本 - 这样你就可以在运行rake任务之前需要一个特定的gemset / do特定的东西。另一个好处是,如果要更改gemset或其他实现细节,只需更改bash脚本即可。

  3. 在节点端,调用bash脚本。有关this answer的更多信息。