改行は 'LF'であると予期されていましたが、 'CRLF'の改行スタイルが見つかりました


155

gulpプロジェクトでeslintを使用すると、このようなエラーの問題が発生
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-styleし、実行中のgulpにWindows環境を使用しています。エラーログ全体は以下のとおりです。

 Kiran (master *) Lesson 4 $ gulp
 Using gulpfile c:\Users\Sai\Desktop\web-build-tools\4\
 gulpfile.js
 Starting 'styles'...
 Finished 'styles' after 17 ms
 Starting 'lint'...
 'lint' errored after 1.14 s
 ESLintError in plugin 'gulp-eslint'
 sage: Expected linebreaks to be 'LF' but found 'CRLF'.
 ails: fileName: c:\Users\Sai\Desktop\web-build-tools\4\js\extra.js



$>Users\Sai\Desktop\web-build-tools\4\js\extra.js
error  Expected linebreaks to be 'LF' but found 'CRLF'  linebreak-style

間違いの可能性を示すエラーとしてextra.jsファイルも含めてます。

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

回答:


201

linebreak-style.eslintrcまたはソースコードのいずれかで、ルールが以下のように構成されているかどうかを確認します。

/*eslint linebreak-style: ["error", "unix"]*/

Windowsで作業しているので、代わりにこのルールを使用することをお勧めします。

/*eslint linebreak-style: ["error", "windows"]*/

ドキュメントを参照してくださいlinebreak-style

さまざまなエディター、VCSアプリケーション、およびオペレーティングシステムを使用している多くの人と一緒に開発する場合、前述のいずれかによって異なる行末が記述されることがあります(特に、SourceTreeのWindowsバージョンとMacバージョンを一緒に使用する場合に発生する可能性があります)。

Windowsオペレーティングシステムで使用される改行(改行)は通常、キャリッジリターン(CR)の後にラインフィード(LF)が続き、キャリッジリターンラインフィード(CRLF)になりますが、LinuxおよびUnixは単純なラインフィード(LF)を使用します。対応する制御シーケンスは"\n"(LF用)および"\r\n"(CRLF)用です。

これは、自動的に修正可能なルールです。--fixコマンドラインのオプションは、このルールによって報告された問題を自動的に修正します。

ただしCRLF、コードで行末を保持したい場合(Windowsで作業している場合)、このfixオプションは使用しないでください。


これはもっとハックです。@The Coderによる別の答えは正しいです。プロジェクトの構成を変更する必要があります
user959690

123

この回答に従って、linebreak-styleを使用して.eslintrcでそれらを無視することは有用であることがわかりました(ラインフィードを無視し、ファイルを変更しない場合):https ://stackoverflow.com/a/43008668/1129108

module.exports = {
  extends: 'google',
  quotes: [2, 'single'],
  globals: {
    SwaggerEditor: false
  },
  env: {
    browser: true
  },
  rules:{
    "linebreak-style": 0
  }
};

この。解決策をありがとう
Blfuentes 2018

84

vscodeを使用していてWindowsを使用している場合は、ウィンドウの右下にあるオプションクリックして、CRLFからLFに設定することをお勧めします。Windowsでエラーを削除するためだけに構成をオフにするべきではないため

LF / CLRFが表示されない場合は、ステータスバーを右クリックして、[エディターの行末]を選択します。

メニュー


4
1つのプロジェクトでこの構成をグローバルに設定するにはどうすればよいですか?すべてのファイルに対してこれを実行する必要があります
BJAA

1
VSCodeのグローバル設定はSettings -> Text Editor -> Files -> Eol、に設定されているよう\nです。これは新しいファイルにのみ適用されるようですが、既存の各ファイルを手動で切り替える必要があります。
V.ルビネッティ

受け入れられた回答(@Dheeraj Vepakomma)とこれはどちらも私の問題を補完するのに役立ちました。ありがとう!
Rodrigo.A92

11

ただ、作っautocrlf.gitconfigファイル内のparamをfalseして、コードを再クローニング。出来た!

[core] autocrlf = false


8

私が走りgit config core.autocrlf true、私が崇拝するのを忘れたので、私と一緒に起こります。

その後、新しいコードをチェックアウト/プルすると、すべてのLF(UNIXでは改行)はCRLF(Windowsでは改行)に置き換えられました。

私はリンターを実行しました、そしてすべてのエラーメッセージは Expected linebreaks to be 'LF' but found 'CRLF'

問題を修正するために、autocrlf実行git config --list | grep autocrlfして値を確認し ました。

core.autocrlf=true
core.autocrlf=false

グローバルGIT構成を編集し、に~/.gitconfig置き換えましautocrlf = trueautocrlf = false

その後、私は自分のプロジェクトに行き、次のことを行いました(src/フォルダー内のコードを想定)。

CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/

8

あなたがそれをしたい場合はCRLF(WindowsのEOL)、ファイルに行く- >設定- >設定。[ユーザー]タブに「行末」と入力し、[ ファイル:Eol]\ r \ nに設定されていることを確認します。Prettier拡張機能を使用している場合は、[ Prettier:行末]がcrlfに設定されていることを確認します。ここに画像の説明を入力してください最後に、eslintrcファイルに次のルールを追加します。'linebreak-style': ['error', 'windows'] ここに画像の説明を入力してください


1
有益な写真に投票し、10倍
benshabatnoam

「ファイルに移動->設定->設定」これはどのアプリで行う必要がありますか?
JeffreyPia

6

vscodeを使用している場合は、ウィンドウの右下にあるオプションをクリックして、CRLFからLFに設定することをお勧めします。これでエラーが修正されました


これは正確にはどこですか?
KansaiRobot

2
それが私の解決策です!10x
Barbu Barbu

1
それは私の問題を修正しました。
Richard Vergis

2

WebStormを使用していてWindowsを使用している場合は、設定/エディター/コードスタイル/全般タブをクリックして、ドロップダウンメニューから「windows(\ r \ n)」を選択することをお勧めします。これらの手順はRiderにも適用されます。

ここに画像の説明を入力してください


0

eslintでVSCodeを使用しているときにも同じ状況が発生しました。VSCodeを使用する場合、

1-名前がVScodeの右下にあるLFまたはCRLFのどちらかになる可能性があるエリアをクリックします。

2-ドロップダウンメニューから[LF]を選択します。

それでうまくいきました。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.