рдЬреЗрдирдХрд┐рдВрд╕ + JsHint (JsLint) рдпрд╛ рдЬреЗрдирдХреАрдВрд╕ рдореЗрдВ рдЬреЗрдирд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рджреЗрдЦреЗрдВ

рдирдорд╕реНрддреЗ рдореБрдЭреЗ рдпрд╣ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд┐рд╖рдп рдХреЗ рд╢реАрд░реНрд╖рдХ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд╕реНрдЯ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧреА рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ, рдЪрд░рдг рджрд░ рдЪрд░рдгред
рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╢реЛрдз рдХрд╛рд░реНрдп рдерд╛, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдирд╛, рдФрд░ рдЙрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рдпрд╣ рдХреНрдпреЛрдВ рдерд╛ ...
рд╢реЛрдз рдХреЗ рджреМрд░рд╛рди, рдХрдИ рд╕рд╡рд╛рд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рд░ред
рдЬреЗрдирдХрд┐рдиреНрд╕-рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рд╡рд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдПрдХ рдЧреНрд░рд╛рдл рдФрд░ рдХреБрдЫ рдЖрдБрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗред
рдЙрд╕реА рд╕рдордп, рдХреЗрд╡рд▓ JsHint рдХрд╛ рдЙрдкрдпреЛрдЧ js-code рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, JsLint рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╢реБрд░реВ рд╣реБрдЖ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдРрд╕рд╛ рд╢рдмреНрдж рд╕реБрдирд╛ рдерд╛ред рдЬреЗрдирдХрд┐рдиреНрд╕ рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рд╣реИред рддреЛ рдкрд╣рд▓реЗ рдПрдХ рдЬреЗрдирдХрд┐рдВрд╕-рдкреНрд▓рдЧрдЗрди рдХреА рддрд▓рд╛рд╢ рдереАред
рдкреНрд▓рдЧрдЗрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдорд┐рд▓ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рдпрд╣рд╛рдВ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИ, рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдХреНрд░реВ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рднреА рд╣реИред
http://www.boxuk.com/labs/jslint-jenkins-plugin/

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

  1. рдиреЛрдбрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

  2. Jshint-npm рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
    npm install -g jshint
    рдкреНрд░рд▓реЗрдЦрди:
    https://npmjs.org/package/jshint

  3. рдЕрдирд╛рд╡рд╢реНрдпрдХ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ (рдЬрд╣рд╛рдБ pom.xml рд╣реИ)
    .jshintignore
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ src / main / webapp / Resources / js / lib / рд╕реЗ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
    рдЙрд╕рдХреЗ рдмрд╛рдж .jintintignore рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдФрд░ рд▓рд┐рдЦреЗрдВ
    src/main/webapp/resources/js/lib/

  4. .Jshintignore рдлрд╝рд╛рдЗрд▓ рдХреЛ "рдиреНрдпреВрдирддрдо" рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    https://github.com/isaacs/minimatch

  5. рд╣рдо рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓рдВрдШрди-рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ jslint / jshint рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдкрдврд╝рддрд╛ рд╣реИ)
    https://wiki.jenkins-ci.org/display/JENKINS/Violations

  6. рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЬреЗрдирдХрд┐рдВрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ "рдЙрд▓реНрд▓рдВрдШрди" рдзреНрд╡рдЬ рдвреВрдВрдвреЗрдВред
    рд╣рдо рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХреЛрдб рдХреЗ jslint рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде xml-file рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

  7. рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯреАрдо, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдиреГрддреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд░реНрддрдХреА рд╢реБрд░реВ рдХреА рдЧрдИ рдереАред
    рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ "рд░рди рд╢реЗрд▓ рдХрдорд╛рдВрдб" рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
    jshint ./src/main/webapp/resources/js --jslint-reporter > ./target/jslint.xml
    рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд jshint-npm рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ jslint рд╢реИрд▓реА рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдЙрд▓реНрд▓рдВрдШрди-рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ jslint- рд░рд┐рдкреЛрд░реНрдЯ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдкрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦреЗрдВред

  8. рдЙрд▓реНрд▓рдВрдШрди-рдкреНрд▓рдЧрдЗрди рдореЗрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
    ./target/jslint.xml

  9. рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ! рдЖрдк рд╢реЗрдбреНрдпреВрд▓ рдФрд░ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред
рдореИрдВ рд╕рднреА рдирд╡рд╛рдЧрдВрддреБрдХреЛрдВ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ, рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ : j-web-dev.blogspot.com/
PS рдПрдХ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдордд рдорд╛рд░реЛ, рдХреЛрдИ рднреА рдПрдХ рдкреЗрд╢реЗрд╡рд░ рдкреИрджрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред )

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


All Articles