рд╣рдо ESLint рдХреЗ рд▓рд┐рдП govnokod, рдпрд╛ рдЙрдкрдпреЛрдЧреА рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрди рджрд┐рдиреЛрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЯреАрдо рдореЗрдВ рдЕрдкрдирд╛рдИ рдЧрдИ рд╢реИрд▓реА рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдерд╛ рд╣реИред


рдЖрдЬ рдореИрдВ ESLint рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдгред


рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрд╕реНрд▓рд┐рдиреНрдЯ рд╕реЗрдЯ рдХрд░рдирд╛: рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рднрд╛рдЧ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд╕реНрд╡рдпрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдореВрд▓ рдЯреВрд▓ рд╕реЗ рдХреНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд "рдХрд┐рдЯ" рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


eslint-config-Airbnb


рдЕрдм рд╣рдо рдПрдпрд░рдмреАрдПрдирдмреА рдЯреАрдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдорд╛рдирдХ рдЕрдм рдЬреАрдердм рдкрд░ 73 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд┐рддрд╛рд░реЗ рд╣реИрдВ рдФрд░ рдХрдИ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдВрдЧрдардиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ: eslint , eslint-plugin-import , eslint-plugin-react eslint-plugin-jsx-a11y рдФрд░ eslint-plugin-jsx-a11y , рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдо рд╣реИрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ React.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдПрд╕реНрдХреНрд▓рд┐рдВрдЯ-рдХреЙрдиреНрдлрд┐рдЧреНрд░реЗрд╢рди-рдПрдпрд░рдмреАрдПрдирдмреА-рдмреЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдХрд┐ React.js рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╣реИред


рдЖрдЗрдП рдкреНрд▓рдЧ-рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдЬрд╛рдиреЗрдВ рдХрд┐ рд╡реЗ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ:


eslint-рдкреНрд▓рдЧрдЗрди-рдЖрдпрд╛рдд


рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рднреА рдЖрдпрд╛рддрд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдореМрдЬреВрдж рд╣реИрдВ, рдмрд╛рдж рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреНрд░рдо рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред


eslint-рдкреНрд▓рдЧрдЗрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛


рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ React.js рдкрд░ рдЕрдзрд┐рдХ рд╕рд╣реА рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдПрдВрдЯреАрдкреИрдЯрд░реНрди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред


eslint-рдкреНрд▓рдЧрдЗрди-jsx-a11y


рдпрд╣ рдкреНрд▓рдЧрдЗрди React.js рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдореЗрдВ рднреА рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ HTML рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдЧрд╛ рдЬреЛ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╡рд┐рдХрд▓рд╛рдВрдЧ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред




рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд┐рдпрдореЛрдВ рдХрд╛ рдпрд╣ рд╕реЗрдЯ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд╕рд╛рде рд╣реА рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзреБрдирд┐рдХ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛ред


рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрд╕реНрд▓рд┐рдиреНрдЯ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рдпреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рдЕрдиреНрдп рднреА рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрджреНрднреБрдд рдЕрджреНрднреБрдд-рдЧреВрдврд╝ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рд╣рд╛рд▓ рдХреЗ рджрд┐рдиреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рдЖрдкрдХреЗ рдиреНрдпрд╛рдпрд╛рд▓рдп рдХреЛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЧрдИрдВ, рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред


ESLint рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд▓рдЧрдЗрдиреНрд╕


рдЖрдк рдЕрдкрдиреЗ рджрдо рдкрд░ рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рд░реБрдЪрд┐ рд╣реИред


eslint-рдкреНрд▓рдЧрдЗрди-рдиреЛрдб


рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдкреНрд▓рдЧрдЗрдиред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рдХрд╛рдо рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдЕрднреА рднреА рдШрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред


eslint-рдкреНрд▓рдЧрдЗрди-lodash


рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ "рд▓рд╡" рдмрдирд╛рдПрдЧрд╛ рдФрд░ рд▓реЙрд╢ рд╕реЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдЧрд╛, рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рд▓реЙрд╢ рдЪреЗрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдореЗрдВ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ред


eslint-рдкреНрд▓рдЧрдЗрди-compat


рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╕реАрдзреЗ рдЙрд╕ рдХреЛрдб рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдЖрдк рдЗрд╕ рд╕рдордп рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдм polyfill.io рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рд╕рдВрдЧрддрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдиреЛрдЯ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ: рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


eslint-рдкреНрд▓рдЧрдЗрди-рдЕрдиреБрдХреВрд▓рди-regex


рдПрдХ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕реНрдерд╛рдкрд┐рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдпрд╣ рд╢рд╛рдирджрд╛рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ред


eslint-рдкреНрд▓рдЧрдЗрди-sonarjs


рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЙрдбреА рдХрд┐рдЯ рдХреА рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЦреЛрдЬ рд╣реИред рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЪреЗрдХ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреА рдмрджреМрд▓рдд рдпрд╣ рдХреЛрдб рдХреЗ рдЦрд░рд╛рдм рд▓рд┐рдЦреЗ рдЧрдП рдЦрдВрдбреЛрдВ, рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдмрд╕ рдЕрд░реНрдерд╣реАрди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЦреБрдж рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ: рдбреА)ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЫреЛрдЯреЗ рд╕реНрдкрд╖реНрдЯ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛ рдФрд░ 100+ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ - рдЗрд╕ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдРрд╕реА рдЬрдЧрд╣реЛрдВ рдХреА рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЬрдЯрд┐рд▓рддрд╛ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


eslint-рдкреНрд▓рдЧрдЗрди-рдиреЛ-рдЫреЛрд░реЛрдВ


рдЬрдм рдЖрдк рдорд╛рдирдХ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ for рдпрд╛ рд▓реВрдк while рдпрд╣ рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЛ рд╢рдкрде рджрд┐рд▓рд╛рдПрдЧрд╛ред рдЖрдЬрдХрд▓, рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреНрд░рдерд╛рдЧрдд рд╣реИ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, map , reduce , рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рд▓реЗрдЦрдХ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд▓рдЧ рдЗрди рдХреЛ рдкреНрд▓рдЧ рдХрд░рддрд╛ рд╣реВрдВред


eslint-рдкреНрд▓рдЧрдЗрди-рдиреЛ-use- рд╡рд┐рд╕реНрддрд╛рд░ рджреЗрд╢реА


рдПрдХ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред рдХрд╣реЛ рдирд╛! рдмрдВрджрд░ рдкрдЯрдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рд╕рд╣реА рд╣реИред


eslint-рдкреНрд▓рдЧрдЗрди-рд╡рд╛рджрд╛


рдПрдХ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ рд╕рд╣реА рд╡рд╛рджреЗ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред




рдпрд╣рд╛рдБ рдЕрдВрдд рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИред рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рд╣рдорд╛рд░реЗ .eslintrc рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рдЫреЛрдбрд╝ .eslintrc :


.eslintrc
 { "parser": "babel-eslint", "extends": [ "airbnb", "plugin:import/errors", "plugin:import/warnings", "plugin:jsx-a11y/recommended", "plugin:sonarjs/recommended", "plugin:promise/recommended" ], "plugins": ["react", "jsx-a11y", "optimize-regex", "sonarjs", "no-loops", "no-use-extend-native", "promise"], "rules": { "react/jsx-filename-extension": "off", "jsx-a11y/click-events-have-key-events": "off", "import/no-extraneous-dependencies": [ "error", { "packageDir": "./" } ], "allowTernary": true, "optimize-regex/optimize-regex": "warn", "sonarjs/cognitive-complexity": ["error", 30], "no-loops/no-loops": 2, "no-use-extend-native/no-use-extend-native": 2, }, "settings": { "import/resolver": "webpack" } } 

Source: https://habr.com/ru/post/hi417841/


All Articles