尝试使用 React 在 rails 应用程序上设置 ruby 时纱线出现问题

Problem with yarn when trying to set a ruby on rails application with react

按照 this 教程,我在最初的步骤中遇到了奇怪的错误。

在 运行 之后:

rails new rails-react-tutorial --webpack=react

然后我会在 bundle install

之后尝试
rails webpacker:install:react  rails generate react:installyarn install 

我会得到:

[DEPRECATION] The trollop gem has been renamed to optimist and will no longer be supported. Please switch to optimist as soon as possible.
rails aborted!
ArgumentError: Malformed version number string Yarn v0.1.1 2011 Jesper Kjeldgaard
/*/rails-react-tutorial/bin/rails:9:in `<top (required)>'
/*/rails-react-tutorial/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => webpacker:install:react => webpacker:verify_install => webpacker:check_yarn
(See full trace by running task with --trace)

检查 this issue 后,我已经删除了 gems 的 bin 路径中的 yarn 文件,正如上次评论 versions/2.6.1/lib/ruby/gems/2.6.0/gems/yarn-0.1.1/lib/yarn.rb 中所建议的那样,但随后我收到如下错误:

rails webpacker:install:react
rails aborted!
LoadError: cannot load such file -- /*/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/yarn-0.1.1/lib/yarn.rb
/*/rails-react-tutorial/config/application.rb:7:in `<main>'
/*/rails-react-tutorial/Rakefile:4:in `<main>'
/*/rails-react-tutorial/bin/rails:9:in `<top (required)>'
/*/rails-react-tutorial/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

所以这将迫使我再次安装 gem。我正在使用 Rails 6.0.2.1-v 和 ruby 2.6.1p33(2019-01-30 修订版 66950)[x86_64-linux].

您需要的 yarn 工具不是 gem,而是 Yarn package manager. I suspect you have installed the yarn gem,它似乎是一个旧的未使用的无关项目。

在你的命令行上试试:

gem uninstall yarn

确保安装了 Yarn 包管理器。在 Mac 上,您可以使用 Homebrew:

brew install yarn

然后重试项目安装命令,应该是:

rails webpacker:install:react 
rails generate react:install
yarn install

我找到了这个 here 并解决了问题:

for ver in $(rbenv whence yarn); do
  RBENV_VERSION="$ver" gem uninstall -ax yarn
  rm -f "$(rbenv prefix "$ver")/bin/yarn"
done
rbenv rehash