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