2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rubocopのエラー Layout/EndOfLine: Carriage return character missing. 【Windows】

Last updated at Posted at 2020-11-10

###経緯
Railsでアプリを作っている初学者です。
Rubocopを導入したところ、
windowsの改行コードのエラーがなかなか解消出来なかったので、まとめました。
同じ様に悩んでいる方の参考になると嬉しいです!

バージョン
Ruby : 2.6.5
Rails : 5.2.4

###エラーの内容

rubocopをすると、こんなエラーが。

Offenses: 
Rakefile:1:1: C: Layout/EndOfLine: Carriage return character missing. 
# Add your own tasks in files placed in lib/tasks ending in .rake, ... 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
app/channels/application_cable/channel.rb:1:1: C: Layout/EndOfLine: Carria 
ge return character missing. 
module ApplicationCable ... 
^^^^^^^^^^^^^^^^^^^^^^^ 
app/channels/application_cable/connection.rb:1:1: C: Layout/EndOfLine: Car 
riage return character missing.
app/models/application_record.rb:1:1: C: Layout/EndOfLine: Carriage return 
 character missing. 
class ApplicationRecord < ActiveRecord::Base ... 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
test/controllers/top_controller_test.rb:1:1: C: Layout/EndOfLine: Carriage 
 return character missing. 
require 'test_helper' ... 
^^^^^^^^^^^^^^^^^^^^^ 
test/test_helper.rb:1:1: C: Layout/EndOfLine: Carriage return character mi 
ssing. 
ENV['RAILS_ENV'] ||= 'test' ... 
^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
14 files inspected, 11 offenses detected

Layout/EndOfLine: Carriage return character missing.
このエラー文なんだろう…?ということで調べてみました。

参考:改行コード一覧
https://qiita.com/uhooi/items/dc74ff3434aecb17faa2

windows → CRLF
mac・Linux → ほかの改行コード

改行のコードが他のOSと違うようです。
これはチーム開発時にOSの違うPCで様々な改行コードが混在するとまずい状況になることもあるため、Rubocopに、このチェック項目が入っているみたいですね!

では改行コードを変えたらいいのでは!?

ということで、powershellから強制変換すると、gitが壊れてブランチを選ぶことができなくなりました…どうすればいいのか…?

###解決策

公式のissueにこの問題が載っていました!

it says missing, not detected. Since version 0.48.0 line endings are configurable and based on your OS. Win->CRLF, Linux->LF. Add these lines to your .rubocop.yml if you wanna use LF line
endinds:

Style/EndOfLine:
EnforcedStyle: lf

.rubocop.ymlにこの文を追加するといいようです。

Style/EndOfLine: 
  EnforcedStyle: lf

変更後の.rubocop.yml

.rubocop.yml
inherit_from: .rubocop_todo.yml 
require: 
  - rubocop-rails 
AllCops: 
  TargetRubyVersion: 2.6 
  Exclude: 
    - 'config.ru' 
    - 'bin/**' 
    - 'lib/**' 
    - 'db/**/*' 
    - 'config/**/*' 
    - 'script/**/*' 
    - !ruby/regexp /old_and_unused\.rb$/ 
Rails: 
  Enabled: true 

AsciiComments: 
  Enabled: false 

Documentation: 
  Enabled: false 

ClassAndModuleChildren: 
  Enabled: false 

Style/FrozenStringLiteralComment: 
  Enabled: false 

#Windowsの改行コードを変更 
Style/EndOfLine: 
  EnforcedStyle: lf

変更して再度rubocopを実行

PS C:\Users\....> rubocop 
.
.
.

Offenses: 
Gemfile:1:1: C: Layout/EndOfLine: Carriage return character detected. 
source 'https://rubygems.org' ... 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
Gemfile:42:7: C: Style/StringLiterals: Prefer single-quoted strings when you don't need string interpolati 
on or special symbols. 
  gem "rspec-rails"


gem "rspec-rails" 
      ^^^^^^^^^^^^^ 
Gemfile:43:3: C: Bundler/OrderedGems: Gems should be sorted in an alphabetical order within their section 
of the Gemfile. Gem factory_bot_rails should appear before rspec-rails. 
  gem "factory_bot_rails" 
  ^^^^^^^^^^^^^^^^^^^^^^^ 
Gemfile:43:7: C: Style/StringLiterals: Prefer single-quoted strings when you don't need string interpolati 
on or special symbols. 
  gem "factory_bot_rails" 
      ^^^^^^^^^^^^^^^^^^^ 
app/controllers/top_controller.rb:1:1: C: Layout/EndOfLine: Carriage return character detected. 
class TopController < ApplicationController ...

spec/spec_helper.rb:49:1: C: Style/BlockComments: Do not use block comments. 
=begin ... 
^^^^^^ 
test/application_system_test_case.rb:1:1: C: Layout/EndOfLine: Carriage return character detected. 
require 'test_helper' ... 
^^^^^^^^^^^^^^^^^^^^^ 
16 files inspected, 9 offenses detected, 5 offenses auto-correctable

エラーが減りました! !

しかし、同じエラーが出ていて、なくならないものもあります。
そういう時はエディターで変更してください

####Atomの場合

自分のエディターはAtomですが、
①改行コードを変更したいページを開き一番下を確認

②右下の改行コードの部分をクリック
Atomで改行コード変更 .png

③LFを押す
改行コードを変更②.png

このステップで完全にrubocopさんからの指摘を無くしました!

windowsローカルだから起きる問題は色々あると思います…
初学者の方、一緒に頑張りましょう……!!!

また、間違い等ありましたらご指摘いただけますと幸いです。
よろしくお願いします。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?