我有一个依赖于ruby gem的node.js项目。有可能以某种方式创建一个安装过程,以简单的方式安装gem依赖项?理想情况下,当我做
时npm install
安装npm依赖项,如果安装了所需的ruby gem,那将会很棒。
两者之间是否存在某种桥梁?如果没有,是否有人对此进行了调查,并找到了建议的最佳做法或在这些情况下解决?
答案 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"
},