ESLint nedir? -Phoique 7

Phoique 7

Katılımcı Üye
14 Mar 2017
505
1
Manisa
Herkese merhaba arkadaşlar, ESLint javascript, node, react, angular gibi şeylere uğraşırken mutlaka duymuşsunuzdur. Bu aracımız aslında yazdığınız projeyi bir standarta göre yazmanızı sağlıyor. Mesela siz bir proje yazmaya başladınız ve sonradan dahil olan bir arkadaşınız var ama arkadaşınızın kod yazım stili farklı siz if bloğunu

Kod:
[COLOR="white"]if (condition) {
    ...
[/COLOR]}

yazarken arkadaşınız

Kod:
[COLOR="white"]if (condition) 
{
    ...
}[/COLOR]

Şeklinde yazıyor. Bu ve buna benzer yazım stillerini bir kurala göre yazmanıza olanak sağlayan ESLint kullanacağız. İlk önce proje klasörü oluşturalım. İçine bir package.json oluşturalım.

Kod:
[COLOR="white"]npm init -f[/COLOR]

Hızlıca bir package.json oluşturması için -f parametresi girdim. Siz isterseniz sorulara yanıt vererek oluşturabilirsiniz. Şimdi ise ESLint kuralım. global olarak.

Kod:
[COLOR="white"]npm install eslint -g[/COLOR]

index.js dosyası oluşturdum ben bunun içinde kodlarım olacak bunları kontrol edeceğim. Şimdi ise ESLint kurallarımızı oluşturmaya geldi sıra.

Kod:
[COLOR="white"]eslint --init[/COLOR]

Diyerek kuralları oluşturmaya başlayacağız. Size birkaç soru soracak o sorulardan sonra artık eslint hazırdır. Şimdi sorulara bakalım.

1) How would you like to configure ESLint? (ESLint nasıl yapılandırmak istersiniz ben kendim yapılandıracağım için 2. şıkkı seçtim isterseniz google airbnb gibi ünlü firmaların kurallarını yapabilirsiniz.)
2) Which version of ECMAScript do you use? (ES6 sürümünü soruyor.)
3) Are you using ES6 modules? (ES6 modülü kullanacak mısınız diyor.)
4) Where will your code run? (Kodunuz nerede çalışır diyor node mu browser da mı?)
5) Do you use CommonJS? (Commonjs kullanacakmısınız diyor ben hayır dedim.)
6) Do you use JSX? (jsx kullanacakmısınız diyor react için eveti seçin. )
7) What style of indentation do you use? (Hangi girinti stilini kullanıyorsunuz diyor ben space kullanıyorum.)
7) What quotes do you use for strings? (Diziler için hangi tırnak kullanıyorsunuz diyor tek mi çift mi ben tek kullanıyorum.)
8) What line endings do you use? (Hangi satır sonlarını kullanıyorsunuz diyor ben unix kullanıyorum.)
9) Do you require semicolons? (Noktalı virgüllere ihtiyacınız varmı diyor ben var dedim.)
10) What format do you want your config file to be in? (Config dosyanız hangi formatta kayıt edilsin diyor ben json seçtim.)

PDyGa5.png


Ben bu şekilde cevap verdim sizde kendinize göre seçeceksiniz. Şimdi gelelim package.json dosyamıza bir nevi kısayol olarak ayarlamaya ESLnit hızlıca çalıştırmak için.

Kod:
[COLOR="white"]"eslint": "eslint .",
"eslint:fix": "eslint . --fix"[/COLOR]

r1Ay4P.png


eslint . bulunduğu klasördeki tüm dosyaları tarar ve hata kurala uymayanları tespit edip size bildirir. eslint . --fix ise bulunduğun klasörde ESLint tarafından fixlenebilen hatalar ise boşluklar girintiler noktalı virgül gibi bunları çözmeye yarıyor.

ESLint çalıştırmak için:

Kod:
 [COLOR="white"]npm run eslint[/COLOR]

ESLint hataları fixlemek için(Fixlenebilecek hataları fixlemek):

Kod:
[COLOR="white"]npm run eslint:fix[/COLOR]

Yazarak fixleyebilirsiniz.

qv5y0q.png


Bakın birkaç hata yaptım ve bunları gösteriyor satırı satırına. ESLint hakkında birsürü kural ve ayarlanacak şey bulabilirsiniz internetten ben sadece basit olarak ESLint girişi anlattım. Mesela şu kodum bu kurala dahil olmasın şu klasör bu kurala dahil olmasın gibi bunları ihtiyacınız oldukça internetten bulabilirsiniz. Bu konuda anlatmak istemedim hem konu uzamasın hemde okuyanlar sıkılmasın diye sağlıcakla kalın.
 

Pentester

Özel Üye
8 Eyl 2016
1,646
999
Eline sağlık kanki, yararlı olmuş. Hep böyle yazarım;
Kod:
if (condition) {
    ...
}
Bu iyidir :D
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.