bundle install --deployment
和bundle install --path vendor/bundle
之间到底有什么区别?
我已经阅读了下面的链接,该链接解释了部署模式的作用,但是我仍然不确定,因为这两个命令都将gems安装到路径vendor/bundle
中。
我的模糊理解是,--deployment
将Gemfile.lock
设置到位,因此无法再对其进行更新。但是,如果我错了,请纠正我。
https://bundler.io/man/bundle-install.1.html#DEPLOYMENT-MODE
答案 0 :(得分:1)
基本上,bundle install --deployment
甚至不会查看您的Gemfile
,而只会安装您的Gemfile.lock
的所有依赖项(如果您的Gemfile.lock
存在依赖项问题,它将失败) 。 bundle install --path
对特定的目标文件夹(在您的示例中,它与bundle install
的目标文件夹相同)执行常规的bundle install --deployment
。您的示例的主要区别在于bundle install
如果您的Gemfile.lock
已更改,则将尝试更改Gemfile
。
Bundler在部署模式下安装到vendor/bundle
的原因是常规bundle install
会将gems安装到每个项目使用的共享文件夹中。最好在项目和部署之间隔离依赖项。