在npm项目中安装ruby宝石

9

我有一个依赖于ruby gem的node.js项目。是否有可能以某种方式创建安装过程,以轻松方式安装gem依赖项?理想情况下,当我执行以下命令时:

npm install

为了安装npm依赖项,最好也安装所需的ruby gem。这两者之间是否有某种桥梁?如果没有,是否有人研究过并在这些情况下找到了建议的最佳实践或解决方法?请注意保留HTML标记。

可能有一种方法可以在您的 package.json 中调用设置脚本,但我不确定。 - Plato
2个回答

10
理论上,npm-scripts 提供了在 npm install 期间运行脚本的功能。例如,您可以将以下行添加到您的 package.json 文件中:
{ "scripts" :
  { "preinstall" : "/usr/bin/env gem install some_gem_name" }
}

当然,您可能希望添加更复杂的脚本来处理未安装Ruby和/或Rubygems、Gem安装失败等情况。安装依赖关系可能变得任意复杂,这就是为什么许多软件包开发人员(在任何一种语言中)通常只假设所需的依赖项已经在目标系统上运行。最后,npm-scripts文档说明:

安装脚本是反模式

install或preinstall脚本的唯一有效用途是必须在目标架构上进行编译。

总之,我建议您将精力集中在向Readme添加适当的安装说明上。

非常有启发性,我从不知道安装脚本被视为反模式! - LePioo

0
如果您在Node.js应用程序中执行Ruby脚本需要多个gem,您可以创建一个Gemfile,然后将此preinstall/postinstall脚本添加到您的package.json中。
"scripts": {
    "postinstall": "/usr/bin/env bundle install"
  },

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接