在npm项目中安装ruby gems

时间:2014-05-19 15:05:31

标签: ruby node.js npm

我有一个依赖于ruby gem的node.js项目。有可能以某种方式创建一个安装过程,以简单的方式安装gem依赖项?理想情况下,当我做

npm install

安装npm依赖项,如果安装了所需的ruby gem,那将会很棒。

两者之间是否存在某种桥梁?如果没有,是否有人对此进行了调查,并找到了建议的最佳做法或在这些情况下解决?

2 个答案:

答案 0 :(得分:7)

理论上,npm-scripts提供了在npm install期间运行脚本的功能。例如,您可以将这些行添加到package.json

{ "scripts" :
  { "preinstall" : "/usr/bin/env gem install some_gem_name" }
}

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

  

安装脚本是反地球

  

安装或预安装脚本的唯一有效用途是编译,必须在目标体系结构上完成。

总而言之,我建议您专注于为自述文件添加正确的安装说明。

答案 1 :(得分:0)

如果你在node.js应用程序中执行ruby脚本需要多个gem,你可以创建一个Gemfile,然后将这个preinstall / postinstall脚本添加到你的package.json。

"scripts": {
    "postinstall": "/usr/bin/env bundle install"
  },