कोलाहल-eslint - ESLint के लिए विशिष्ट linting नियम प्रतिक्रिया जैसे componentDidMount
में setState के उपयोग को रोकने के npm install --save-dev eslint
npm install --save-dev babel-eslint
npm install --save-dev eslint-plugin-react
मैं करने का फैसला किया - ES6 linting
eslint-प्लगइन-प्रतिक्रिया समर्थन करने के लिए एयरबीएनबी द्वारा उपयोग की जाने वाली सामान्य प्रथाओं और सम्मेलनों का उपयोग करें, इसलिए मैंने निम्नलिखित संकुल भी स्थापित किए हैं। लेकिन आपको उनकी आवश्यकता नहीं है यदि आप एयरबीएनबी एस्लिंट प्रीसेट का उपयोग नहीं करना चाहते हैं।
npm install --save-dev eslint-config-airbnb
npm install --save-dev eslint-plugin-import
npm install --save-dev eslint-plugin-jsx-a11y
एक कॉन्फ़िग फ़ाइल .eslintrc.json बनाएं अपनी परियोजना के रूट में: (आप eslint का उपयोग intreactive तरह से eslint विन्यास फाइल उत्पन्न करने के लिए कर सकते हैं)
eslint --init
(आप तो किसी प्रीसेट को चुना है यह सुनिश्चित करें कि आप उस लिंट प्रीसेट के लिए आवश्यक पैकेज भी इंस्टॉल करें)
मैंने "airbnb" बढ़ाया लेकिन अतिरंजित मेरी परियोजना के लिए कुछ नियमों को संपादित करें। "फैली" आप उपयोग कर सकते हैं: "eslint: अनुशंसित" कुछ सामान्य फाहा नियम सक्षम करने के लिए eslint द्वारा सिफारिश की यहाँ मेरी .eslintrc.json फ़ाइल
{
"extends" : "airbnb",
"parser" : "babel-eslint",
"parserOptions" : {
"ecmaVersion" : 6,
"sourceType" : "module",
"ecmaFeatures" : {
"jsx":true
}
},
"env": {
"browser" : true,
"node" : true,
"jquery" : true
},
"settings":{
"react":{
"pragma":"React",
"version":"15.1.0"
},
"ecmascript":6,
"jsx":true
},
"plugins": [
"react"
],
"rules": {
"strict": 0,
"quotes": 0,
"no-unused-vars": 1,
"camelcase": 1,
"no-underscore-dangle": 1,
"comma-dangle":[1,"never"],
"indent":["error",4],
"react/jsx-indent":0,
"react/jsx-equals-spacing": [2, "always"],
"no-console":0,
"max-len":1,
"no-param-reassign":1,
"key-spacing": [
2,
{
"align": "colon",
"beforeColon": true,
"afterColon": true
}
],
"no-multi-spaces": [
2,
{
"exceptions":{
"VariableDeclarator":true,
"ImportDeclaration":true,
"JSXAttribute":true,
"AssignmentExpression":true
}
}
]
}
}
अब साथ ESLint एकीकृत है विम में सिंटेस्टिक प्लगइन मैंने सिंटैक्स त्रुटि जांच के लिए विम के साथ सिंटेस्टिक का उपयोग करने का निर्णय लिया।
let g:syntastic_javascript_checkers = ['eslint']
सभी सेट, लेकिन अभी भी वहाँ एक मुद्दा Syntastic साथ शेष है। सिंटेस्टिक स्थानीय परियोजना के बजाय वैश्विक node_modules खोज करता है।
एक समाधान वैश्विक स्तर पर सभी पैकेज एस्लिंट, बेबेल-एस्लिंट इत्यादि स्थापित करेगा जो निश्चित रूप से एक अच्छा अभ्यास नहीं होगा।
एक अन्य समाधान
अपने package.json में एक NPM स्क्रिप्ट परिभाषित है
"eslint": "eslint -c .eslintrc.json"
यह वर्तमान पथ में सभी स्थानीय स्तर पर स्थापित NPM संकुल जोड़ना होगा, ताकि वे निष्पादन के लिए उपलब्ध होगा।
और अपने .vimrc
फ़ाइल में vim से NPM स्क्रिप्ट के माध्यम से
let g:syntastic_javascript_eslint_exe = 'npm run eslint --'
यहाँ हम लागू कर रहे हैं linting जोड़ें।
वैकल्पिक: उपयोग प्लग 'mtscout6/syntastic-स्थानीय eslint.vim' प्लगइन
vim में खोलें त्रुटि विंडो आपको अपनी फ़ाइल को खोलने के रूप में -
जोड़ें निम्नलिखित लाइनों अपने .vimrc वर्तमान फाहा त्रुटि (किसी भी मामले में) को दिखाने के लिए के रूप में आप संपादन के लिए अपने फ़ाइल को खोलने
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
Snipptes और स्वत: पूर्ण करने
टुकड़ा इंजन जो उपयोगकर्ता एक टुकड़ा विस्तार मानचित्रण मार का नाम लिखकर के टुकड़े डालने की अनुमति के विभिन्न कांटे हैं।
- github.com/SirVer/ultisnips: अजगर, इस रेपो में सभी के टुकड़े का समर्थन करता है।
- github.com/garbas/vim-snipmate: विम, स्निपमेट-स्निपेट, इंजन कभी-कभी अजीब व्यवहार करता है। स्निपेट का समर्थन करता है * *
- github.com/Shougo/neosnippet: विमल, कुछ कॉन्फ़िगरेशन के साथ स्निपेट/* का समर्थन करता है।
- github.com/drmingdrmer/xptemplate: पूरी तरह से अलग वाक्यविन्यास, इस फ़ाइल में निहित स्निपेट नहीं पढ़ता है, लेकिन यह भी बहुत शक्तिशाली है।
मैं neosnippet पसंद करता हूं। स्वत: पूर्णता के लिए neocomplete के साथ स्निपेट सक्षम करने के लिए इसे अपने vim में इंस्टॉल करें।
नियोकम्प्लेट स्निपेट के लिए अतिरिक्त समर्थन के साथ एक अद्भुत स्वत: पूर्ण प्लगइन है।यह शब्दकोश, बफर, omnicomplete और snippets से simulatiously पूरा कर सकते हैं। यह एक सच्ची प्लगइन है जो सर्वश्रेष्ठ संपादकों के बराबर विम स्वत: पूर्ण लाती है।
देखें निर्देश here for neocomplete
स्थापित प्लगइन्स आप सक्षम करने के लिए एक और प्लगइन स्थापित करने की जरूरत है इसके बाद के संस्करण स्थापित करने के बाद विशिष्ट स्निपेट
Bundle 'justinj/vim-react-snippets'
प्रतिक्रिया है कि प्लगइन के लिए निर्देश here स्थापित देखें।
यदि सभी सेटअप सही तरीके से किए गए हैं, तो आपने ईएस 6 सुविधाओं के साथ प्रतिक्रिया के लिए एस्लिनिंग, ऑटो पूर्णता, जेएसएक्स सिंटैक्स हाइटलाइटिंग के साथ विम सक्षम किया है!
मेरी blog पोस्ट से लिया गया।
सिंटेस्टिक बॉक्स से बाहर समग्र फ़ाइल प्रकार का समर्थन करता है, 'एच सिंटेस्टिक-कंपोजिट' देखें, इसलिए 'vim-jsx' इंस्टॉल करना पर्याप्त होना चाहिए। यह कहना मुश्किल है कि यह आपके लिए डीबग ट्रेस के बिना क्यों काम नहीं करता है। इश्यू ट्रैकर [यहां] है (https://github.com/scrooloose/syntastic/issues)। – lcd047