netlify cms 部署错误表示需要 Bundler v2 但使用了 bundler v2

error with netlify cms deployment says Bundler v2 needed but bundler v2 was used

当尝试将存储在 github 上的 jekyll 站点部署到 netlify cms 时,构建过程抛出此错误

10:54:13 AM: Using ruby version 2.3.6
10:54:13 AM: Using PHP version 5.6
10:54:13 AM: Started restoring cached ruby gems
10:54:13 AM: Finished restoring cached ruby gems
10:54:13 AM: Installing gem bundle
10:54:13 AM: You must use Bundler 2 or greater with this lockfile.
10:54:13 AM: Error during gem install
10:54:13 AM: failed during stage 'building site': Build script returned non-zero exit code: 1
10:54:13 AM: Error running command: Build script returned non-zero exit code: 1
10:54:13 AM: Failing build: Failed to build site

请注意应该使用 bundler 2 或更高版本。

在GemFile.lock

最后显示....

BUNDLED WITH
2.0.1

任何人都知道发生了什么或我如何才能investigate/resolve这个构建错误,因为该站点似乎已经满足要求。

还是告诉我需要配置 netlify 构建过程才能使用 Bundler 2?如果可以,这可能吗?

您可以从存储库中删除 Gemfile.lock,因为 Netlify 将使用您的 Gemfile 为每个构建构建快照。

  1. Gemfile.lock 添加到 .gitignore
  2. 删除Gemfile.lock
  3. 提交更改并推送。

如果不起作用,撤消这些更改并将 Bundler 降级到 v1.17.2

  1. gem uninstall bundler
  2. gem install bundler --version '1.17.3'
  3. bundle update
  4. 提交更改并推送。

感谢这个博客找到了答案。 https://stollerys.co.uk/2019/01/12/you-must-use-bundler-2-or-greater-with-this-lockfile

Netlify 构建服务器不使用捆绑器的 V2,因此它会 barfs。

因此不得不降级我的本地版本:

gem uninstall bundler

然后安装netlify兼容版本

gem install bundler -v 1.17.1

删除GemFile.lock

通过 运行

重新生成它
bundle install

将文件暂存到 git,然后将它们推送到 github

git commit -am "Downgraded bundler for netlify compatibility"
git push

这触发了 netlify 构建,效果很好。