首页 > 解决方案 > 为什么 Rubocop 提出“解析器/当前识别符合 2.5.5 的语法,但您正在运行 2.5.3”?

问题描述

在 Rails 应用程序中,我开始在日志和测试输出中看到以下内容。

warning: parser/current is loading parser/ruby25, which recognizes
warning: 2.5.5-compliant syntax, but you are running 2.5.3.
warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.

这来自 Rubocop。

我知道 Rubocop 检查应用程序根目录中是否存在 .ruby-version 文件并使用它指定的 Ruby 版本。https://rubocop.readthedocs.io/en/latest/configuration/#setting-the-target-ruby-version

Rails 应用程序包含这样一个文件

/.ruby-version
ruby-2.5.3

为什么 Rubocop 会针对错误版本的 Ruby 运行检查?

标签: ruby-on-railsrubocop

解决方案


它来自解析器对 rubocop 的依赖。

https://github.com/whitequark/parser/blob/master/lib/parser/current.rb

查看这段代码,如果您没有使用 Ruby 的最后一个次要版本,您似乎会收到此警告。


推荐阅读