はじめに
自分で変更したはずないのに、なぜか起こるエラーが私にはあります。
(おそらく眠気がすごいときに学習+コードを入力しているから…睡眠学習)
今回は多分眠気が原因で発生したであろうエラーについてアウトプットします。
環境
- Windows, WSL
- Docker
- Ruby 3.2.3
- Rails 7.1.3
Layout/EndOfLine: Carriage return character detected.
VsCodeの初期設定がうまくいっていなく、このエラーが発生する人は一定数いると思います。エラーの意味と解決方法をまとめます。
エラーの意味
- ファイル内の行末にキャリッジターン(\r)キャラクターが含まれていることを示している
- 通常、行末は改行(\n)だけであるべきで、キャリッジリターンは不要
- 特にWindowsで作成されたファイルにはこのキャリッジリターンが含まれていることが多いので、エディタやツールで行末をLF(\n)に統一すると解消できる
解決方法:エディタでの変更(例:VSCode)
1:ファイルを開く。
2:右下のステータスバーにある改行コード(CRLFまたはLF)をクリック。
3:上の検索窓でLFとCRLFを選択する一覧のようなものがでてくるので、LF(Unixスタイル)を選択。
解決方法:コマンドラインでの変更
- Unix系システム(Linux/macOS)では、sedコマンドを使用して改行コードを変換できます
sed -i 's/\r$//' app/controllers/admin/site/attachments_controller.rb
-
Windowsでは、dos2unixコマンドを使用して改行コードを変換できます。まず、dos2unixをインストールする必要があります。インストール方法は以下の通りです
-
Homebrewを使用してインストール(macOS/Linux):
brew install dos2unix
-
Ubuntu/Debian:
sudo apt-get install dos2unix
-
CentOS/RHEL:
sudo yum install dos2unix
-
それぞれインストール後、次のコマンドを実行します:
dos2unix app/controllers/admin/site/attachments_controller.rb
さいごに
私自身VsCodeを使用してコード入力等を行っているので、実際にはボタン2回くらいぽちぽちすることであっさり解決できました
眠気がひどいときにコード入力していると知らぬ間にマウスでカチッと押すこと今後もありそう💦最高のエンジニアになるためには仮眠も大事?
今回の記事が参考になれば幸いです。