ruby - 在 npm 项目中安装 ruby​​ gems

标签 ruby node.js npm

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

npm install

要安装 npm 依赖项,如果还安装了所需的 ruby​​ gem,那就太好了。

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

最佳答案

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

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

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

INSTALL SCRIPTS ARE AN ANTIPATTERN

The only valid use of install or preinstall scripts is for compilation which must be done on the target architecture.

总而言之,我建议您将精力集中在向自述文件中添加正确的安装说明上。

关于ruby - 在 npm 项目中安装 ruby​​ gems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741174/

相关文章:

ruby - 协议(protocol)族不支持的地址族

在 Heroku 上安装 Ruby 应用程序 : rake aborted. KeyError: key not found

javascript - Gulp 需要 "Cannot Find Module",即使它存在

javascript - 在 NVM + 自制软件上将 NPM 更新为自定义版本

javascript - 找不到模块 : Error: Can't resolve '@cycle/run' webpack 2. 2.1

带前导零的 ruby​​ Date.month

ruby-on-rails - 是否可以存储 Ruby 命令并稍后执行它们的输出?

angularjs - 当 Angular js应用程序在nginx代理传递中提供服务时,相对路径问题

node.js - Socket.IO IPv6(2013 年 1 月版)

javascript - 根据 url 参数提供压缩与未压缩的 js 和 css 文件 - AngularJs,Grunt