Beklenen satır aralığının 'LF' olması, ancak 'CRLF' satır sonu stili bulunması


156

Gulp projesinde eslint kullanırken böyle bir hata ile karşılaştım
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-styleve çalışan yudum için Windows ortamını kullanıyorum ve tüm hata günlüğü aşağıda verilmiştir

 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

Ayrıca olası hata gösteren hata olarak extra.js dosyası dahil .

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

Yanıtlar:


202

linebreak-styleKuralın .eslintrc dosyasında veya kaynak kodunda aşağıdaki gibi yapılandırılıp yapılandırılmadığını kontrol edin :

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

Windows üzerinde çalıştığınız için bunun yerine bu kuralı kullanmak isteyebilirsiniz:

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

Bakın belgelere ait linebreak-style:

Farklı editörlere, VCS uygulamalarına ve işletim sistemlerine sahip birçok insanla birlikte gelişirken, belirtilen satırlardan herhangi biri tarafından farklı satır sonlarının yazılması meydana gelebilir (özellikle SourceTree'nin windows ve mac sürümlerini birlikte kullanırken olabilir).

Windows işletim sisteminde kullanılan satır aralıkları (yeni satırlar) genellikle satır başı (CR), ardından satır besleme (LF) olur ve Linux ve Unix basit satır satırı (LF) kullanır. Karşılık gelen kontrol sekansları "\n"(LF için) ve "\r\n"(CRLF) içindir.

Bu otomatik olarak düzeltilebilir bir kuraldır. --fixKomut satırında seçeneği otomatik olarak bu kural tarafından bildirilen sorunları giderir.

Ancak CRLFsatır sonlarını kodunuzda tutmak istiyorsanız (Windows üzerinde çalışırken) fixseçeneği kullanmayın .


Bu daha çok bir hack. @ Coder tarafından verilen diğer cevap doğrudur. Projenin yapılandırmasını değiştirmeniz gerekiyor
user959690

124

Ben bu cevaba göre linebreak tarzı kullanarak .eslintrc onları yok saymak için yararlı (burada satır beslemeleri yoksaymak ve herhangi bir dosya değiştirmek istedim) bulundu: https://stackoverflow.com/a/43008668/1129108

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

Bu. Çözüm için teşekkürler
blfuentes

84

Vscode kullanıyorsanız ve Windows kullanıyorsanız , pencerenin sağ alt kısmındaki seçeneği tıklatmanızı ve CRLF'den LF olarak ayarlamanızı öneririm . Çünkü yapılandırmayı sadece Windows'daki hataları kaldırmak için kapatmamalıyız

LF / CLRF'yi görmüyorsanız, durum çubuğuna sağ tıklayın ve Editör Satır Sonu'nu seçin.

Menü


4
Bir projede bu yapılandırmayı global olarak nasıl ayarlayabilirim? bunu her dosya için yapmak zorundayım
BJAA

1
VSCode'daki genel ayar şu şekilde görünüyor:, olarak Settings -> Text Editor -> Files -> Eolayarlanmış \n. Bu sadece yeni dosyalar için geçerli gibi görünüyor, yine de mevcut her dosyayı manuel olarak değiştirmeniz gerekiyor.
V. Rubinetti

Kabul edilen cevap (@Dheeraj Vepakomma) ve bu hem sorunumda tamamladıkları için bana yardımcı oldu. Teşekkürler!
Rodrigo.A92

11

Sadece autocrlf.gitconfig dosyasında param yaptım falseve kodu yeniden kazandık . İşe yaradı!

[core] autocrlf = false


8

Benimle oldu çünkü koştum git config core.autocrlf trueve geri dönmeyi unuttum.

Bundan sonra, yeni kodu teslim aldığımda / çektiğimde, tüm LF (Unix'teki kesme çizgisi) CRLF (Windows'ta kesme çizgisi) ile değiştirildi.

Linter kullandım ve tüm hata mesajları Expected linebreaks to be 'LF' but found 'CRLF'

Sorunu çözmek için autocrlfdeğeri çalıştırarak kontrol ettim git config --list | grep autocrlfve aldım:

core.autocrlf=true
core.autocrlf=false

Küresel GYTE yapılandırması düzenlenmiş ~/.gitconfigve yerini autocrlf = truetarafından autocrlf = false.

Bundan sonra, projeme gittim ve aşağıdakileri yaptım ( src/klasördeki kodu varsayarak ):

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

8

Eğer bunu istiyorsanız crlf > Tercihler - -> Ayarlar (Windows Eol), File gidin. Kullanıcı sekmesine "satır sonu" yazın ve Dosyalar: Eol'ün \ r \ n olarak ayarlandığından ve Prettier uzantısını kullanıyorsanız, Prettier: Satır Sonu'nun crlf olarak ayarlandığından emin olun . resim açıklamasını buraya girinSon olarak, eslintrc dosyanıza şu kuralı ekleyin:'linebreak-style': ['error', 'windows'] resim açıklamasını buraya girin


1
Yararlı fotoğraflar için
seçildi

"Dosya -> Tercihler -> Ayarlar'a gidin" Bu hangi uygulamada yapılmalıdır?
JeffreyPia

6

Vscode kullanıyorsanız, pencerenin sağ alt kısmındaki seçeneği tıklatmanızı ve CRLF'den LF olarak ayarlamanızı öneririm.Bu hatalarmı düzeltti


bu tam olarak nerede?
KansaiRobot

2
bu benim için bir çözüm! 10x
Barbu Barbu

1
Sorunumu düzeltti.
Richard Vergis

2

WebStorm kullanıyorsanız ve Windows kullanıyorsanız , ayarlar / düzenleyici / kod stili / genel sekmesini tıklamanızı ve açılır menüden "windows (\ r \ n) 'ı seçmenizi öneririm.Bu adımlar Rider için de geçerlidir.

resim açıklamasını buraya girin


0

Aynı durum escoint ile VSCode kullanırken meydana geldi. VSCode kullanıyorsanız,

1 - VScode'un sağ alt tarafında adın hem LF hem de CRLF olabileceği alanın üzerine tıklayın.

2 - Açılır menüden LF'yi seçin.

Bu benim için çalıştı.

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.