是否推荐像npm一样将Ruby依赖安装到本地文件夹?
推荐将Ruby依赖安装到本地文件夹
作为前端开发者,你把npm的本地依赖思路迁移到Ruby生态是完全合理的,非常推荐你这么做,原因如下:
- 环境隔离,避免版本冲突:全局安装的gem会被所有Ruby项目共享,一旦不同项目依赖同一个gem的不同版本,就会出现兼容性问题——这和npm全局包的痛点完全一致。本地安装的话,每个项目的依赖都存放在项目目录下的
vendor/bundle文件夹,相互独立,不会干扰。 - 保证项目一致性:本地依赖能确保团队里每个人、甚至CI环境安装的依赖版本完全一致,不会出现“我本地能跑,你那边报错”的情况。配合
Gemfile和Gemfile.lock,和npm的package.json+package-lock.json逻辑一致,能牢牢锁定依赖版本。 - 项目可移植性更强:把依赖存在本地,项目目录本身就更完整,拷贝或者部署的时候,只要带上
vendor/bundle(或者重新执行bundle install)就能快速搭建好环境,不用依赖全局的gem状态。
怎么配置本地安装
你可以直接执行命令:
bundle install --path vendor/bundle
执行一次后,Bundler会在项目根目录生成.bundle/config文件,里面会记录这个路径配置,之后再执行bundle install就会自动安装到本地文件夹了。
补充:全局安装的适用场景
全局安装不是完全没用,适合安装一些命令行工具类的gem,比如rails、rspec、rubocop这类需要在所有项目外直接调用的工具,就像你用npm install -g装vue-cli、eslint一样。但项目的业务依赖,还是本地安装更稳妥。
内容的提问来源于stack exchange,提问作者tao leo
相关产品推荐
相关产品推荐

