अपेक्षित लाइनब्रीक 'LF' है, लेकिन 'CRLF' लाइनब्रेक-शैली पाई गई


156

जब मैं इस तरह की त्रुटि के साथ एक समस्या का सामना करना पड़ा है
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-styleऔर मैं चल वातावरण के लिए 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

मेरे पास अतिरिक्त .js फ़ाइल भी शामिल है क्योंकि त्रुटि संभव त्रुटि का संकेत देती है।

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

जवाबों:


202

जांचें कि क्या आपके पास linebreak-styleनियम आपके .eslintrc या स्रोत कोड में नीचे के रूप में कॉन्फ़िगर है:

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

चूंकि आप विंडोज पर काम कर रहे हैं, इसलिए आप इस नियम का उपयोग करना चाह सकते हैं:

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

के प्रलेखन का संदर्भ लें linebreak-style:

जब बहुत सारे लोगों के साथ सभी अलग-अलग संपादक, वीसीएस एप्लिकेशन और ऑपरेटिंग सिस्टम विकसित होते हैं, तो यह हो सकता है कि अलग-अलग लाइन एंडिंग का उल्लेख किया गया हो।

विंडोज़ ऑपरेटिंग सिस्टम में उपयोग की जाने वाली लाइनब्रेक्स (नई लाइनें) आमतौर पर कैरिज रिटर्न (सीआर) होती हैं, इसके बाद एक लाइन फीड (एलएफ) होती है, जो इसे कैरिज रिटर्न लाइन फीड (सीआरएलएफ) बनाती है जबकि लिनक्स और यूनिक्स एक साधारण लाइन फीड (एलएफ) का उपयोग करते हैं। संबंधित नियंत्रण क्रम "\n"(LF के लिए) और "\r\n"(CRLF) हैं।

यह एक नियम है जो स्वचालित रूप से ठीक करने योग्य है। --fixकमांड लाइन पर विकल्प स्वचालित रूप से इस नियम से सूचना समस्याओं को ठीक करता।

लेकिन अगर आप CRLFअपने कोड में लाइन-एंडिंग को बनाए रखना चाहते हैं (जैसा कि आप विंडोज पर काम कर रहे हैं) fixविकल्प का उपयोग न करें ।


यह एक हैक की अधिक है। @The कोडर द्वारा अन्य उत्तर सही है। आपको प्रोजेक्ट का
कॉन्फिगरेशन

124

मुझे यह उपयोगी लगा (जहाँ मैं लाइन फीड्स को अनदेखा करना चाहता था और किसी भी फाइल को बदलना नहीं चाहता था) इस उत्तर के अनुसार लाइन-स्टाइल का उपयोग करके .llintrc को अनदेखा करना चाहता था: https://stackoverflow.com/a/43008668/1129108

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

यह। समाधान के लिए धन्यवाद
ब्ल्यूफेंटेस

84

यदि आप vscode का उपयोग कर रहे हैं और आप Windows पर हैं, तो मैं आपको विंडो के निचले-दाईं ओर स्थित विकल्प पर क्लिक करने और इसे CRLF से LF पर सेट करने की सलाह दूंगा । क्योंकि हमें विंडोज पर त्रुटियों को दूर करने के लिए कॉन्फ़िगरेशन को बंद नहीं करना चाहिए

यदि आपको LF / CLRF दिखाई नहीं देता है, तो स्थिति पट्टी पर राइट क्लिक करें और लाइन के Editor End का चयन करें।

मेन्यू


4
इस कॉन्फ़िगरेशन को एक परियोजना में वैश्विक कैसे सेट करें? मुझे हर फाइल के लिए ऐसा करना होगा
BJAA

1
VSCode में वैश्विक सेटिंग प्रतीत होती है:, के Settings -> Text Editor -> Files -> Eolलिए सेट \n। यह केवल नई फ़ाइलों पर लागू होता है, फिर भी आपको प्रत्येक मौजूदा फ़ाइल को मैन्युअल रूप से स्विच करना होगा।
वी। रुबनेत्ती

स्वीकृत उत्तर (@ धीरज वेपकोमा) और इस दोनों ने मेरी मदद की क्योंकि वे मेरे मुद्दे पर पूरक थे। धन्यवाद!
रोड्रिगो .92

11

बस autocrlf.gitconfig फ़ाइल में परम बनाया falseऔर कोड को पुनः प्राप्त किया। इसने काम कर दिया!

[core] autocrlf = false


8

मेरे साथ हुआ क्योंकि मैं भाग गया था git config core.autocrlf trueऔर मैं वापस श्रद्धा करना भूल गया था।

उसके बाद, जब मैं नया कोड चेक / पुल करता हूं, तो सभी LF (यूनिक्स में ब्रेक लाइन) को CRLF (विंडोज में ब्रेक लाइन) द्वारा बदल दिया गया।

मैं लिंटर चला गया, और सभी त्रुटि संदेश हैं Expected linebreaks to be 'LF' but found 'CRLF'

समस्या को ठीक करने के लिए, मैंने autocrlfदौड़कर मान की जाँच की git config --list | grep autocrlfऔर मुझे मिला:

core.autocrlf=true
core.autocrlf=false

मैंने वैश्विक जीआईटी कॉन्फिग को संपादित किया ~/.gitconfigऔर इसके autocrlf = trueद्वारा प्रतिस्थापित किया गया autocrlf = 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 और आप सुंदर एक्सटेंशन का उपयोग कर रहे हैं, यह सुनिश्चित कर लें सुंदर: रेखा की समाप्ति के लिए निर्धारित है CRLFयहाँ छवि विवरण दर्ज करेंअंत में, अपनी eslintrc फ़ाइल पर, इस नियम को जोड़ें:'linebreak-style': ['error', 'windows'] यहाँ छवि विवरण दर्ज करें


1
उपयोगी फ़ोटो के लिए वोट किया गया, 10x
benshabatnoam

"फाइल पर जाएं -> वरीयताएँ -> सेटिंग्स" इसमें क्या किया जाना चाहिए?
जेफरीपिया

6

यदि आप vscode का उपयोग कर रहे हैं, तो मैं आपको विंडो के निचले-दाईं ओर स्थित विकल्प पर क्लिक करने और CRLF से LF पर सेट करने की सलाह दूंगा।


वास्तव में यह कहां है
कांसईरोबोट

2
यह मेरे लिए तय है! 10x
बारू बारु

1
इसने मेरी समस्या को ठीक कर दिया।
रिचर्ड वर्गीज

2

यदि आप WebStorm का उपयोग कर रहे हैं और आप Windows पर हैं मैं मेनू से सेटिंग्स / संपादक / कोड शैली / सामान्य टैब पर क्लिक करने और "विंडोज़ (\ r \ n)" चुनने की सलाह दूंगा। ये कदम राइडर के लिए भी लागू होंगे।

यहाँ छवि विवरण दर्ज करें


0

वही स्थिति तब हुई जब मैं एस्सेल के साथ VSCode का उपयोग कर रहा था। यदि आप VSCode का उपयोग करते हैं,

1 - उस क्षेत्र पर क्लिक करें, जहां नाम LF या CRLF दोनों हो सकता है, जहां VScode के निचले दाईं ओर।

2 - ड्रॉप-डाउन मेनू से LF का चयन करें।

मेरे लिए यही काम किया है।

यहाँ छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.