JavaScript代碼風格檢查工具 - JSCS 介紹

byc7 10年前發布 | 64K 次閱讀 JSCS JavaScript開發

JSHint 可以幫助檢測你的 JavaScript 代碼中的錯誤和潛在的問題,而 JSCS 是一個 JavaScript 的代碼風格檢查工具,通過使用這兩款 QA Tools 能在團隊協作中大大提升代碼的正確性、準確性、完整性、簡潔性、統一性及易讀性,下面介紹 JSCS 的基本使用。

SublimeLinter-jscs demo

Get Started

JSCS 提供了150余項驗證規則,其中預置了當下比較流行的編碼風格指南如 jQuery、Airbnb、Google 等,你也可以針對項目對其進行任意配置,在使用之前先在你的環境中安裝 JSCS :

Packages

  • Atom plugin: https://atom.io/packages/linter-jscs

    </li>

  • Brackets Extension: https://github.com/globexdesigns/brackets-jscs

    </li>

  • Grunt task: https://github.com/jscs-dev/grunt-jscs/

    </li>

  • Gulp task: https://github.com/jscs-dev/gulp-jscs/

    </li>

  • Overcommit Git pre-commit hook manager: https://github.com/brigade/overcommit/

    </li>

  • SublimeText 3 Plugin: https://github.com/SublimeLinter/SublimeLinter-jscs/

    </li>

  • Syntastic VIM Plugin: https://github.com/scrooloose/syntastic/blob/master/syntax_checkers/javascript/jscs.vim/

    </li>

  • Web Essentials for Visual Studio 2013: https://github.com/madskristensen/WebEssentials2013/

    </li>

  • IntelliJ IDEA, RubyMine, WebStorm, PhpStorm, PyCharm plugin: https://www.jetbrains.com/webstorm/help/jscs.html

    </li> </ul>

    ATOM JSCS Linter demo

    Presets

    安裝好 JSCS 后需要對其進行些設置,最簡單的方法是使用下面概述的預置選項:

    • Airbnb — https://github.com/airbnb/javascript

      </li>

    • Crockford — http://javascript.crockford.com/code.html

      </li>

    • Google — https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml

      </li>

    • Grunt — http://gruntjs.com/contributing#syntax

      </li>

    • jQuery — https://contribute.jquery.org/style-guide/js/

      </li>

    • MDCS — https://github.com/mrdoob/three.js/wiki/Mr.doob's-Code-Style?

      </li>

    • node-style-guide - https://github.com/felixge/node-style-guide

      </li>

    • Wikimedia — https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript

      </li>

    • WordPress — https://make.wordpress.org/core/handbook/coding-standards/javascript/

      </li>

    • Yandex — https://github.com/yandex/codestyle/blob/master/javascript.md

      </li> </ul>

      在項目根目錄創建一個.jscsrc配置文件來改變或禁用任何預設規則,例如:

      {
          // 使用 jquery 編碼風格規范
          "preset": "jquery",

      // 改變 requireCurlyBraces 規則
      "requireCurlyBraces": null // or false
      

      }</pre>

      Tips:部分編輯器需重啟才能使.jscsrc的更改生效。

      Options

      JSCS 提供了一些選項,你可以根據需要對其進行設置:

      • additionalRules (附加規則)

            // 加載附加的規則路徑
            "additionalRules": ["project-rules/*.js"]
        </li>

      • preset (用預置規則進行規則預設)

            你可以選擇一個默認的預置:"airbnb", "crockford", "google", "jquery", "mdcs", "node-style-guide", "wikimedia", "wordpress", "yandex".

        你也可以從本地路徑或節點模塊加載

        "preset": "jquery"
        "preset": "./path-to-your-preset"
        
        // If your preset called "jscs-your-preset-node_modules-path"
        // You can either define full name or omit "jscs-" prefix -
        "preset": "your-preset-node_modules-path"
        
        

        你可以對任何預設的規則設置為 null 或 false 來進行禁用:

        {
            "preset": "jquery",
            "requireCurlyBraces": null // or false
        }</pre></li>
        

      • excludeFiles (對指定文件或目錄禁用風格檢查)

            // 采用 glob 模式匹配,使用 "!foo" 來排除具體文件/文件夾
            "excludeFiles": ["folder_to_exclude/**", "src/!(bar|foo)"]

        默認排除 node_modules 文件夾</pre></li>

      • fileExtensions (驗證文件后綴名)

            // 驗證以 '.js' 和 '.jsx' 為后綴的文件,如果設置為 '*' 將驗證任意文件類型
            "fileExtensions": [".js", ".jsx"]

        默認驗證 .js 文件</pre></li>

      • maxErrors (設置錯誤要報告的最大數目)

            "maxErrors": 10

        默認:50</pre></li>

      • esnext (實驗性,嘗試使用 babler-jscs 解析 ES6+、JSX 及 Flow)

            "esnext": true
        </li>

      • es3 (使用 ES3 保留字)

            "es3": true
        </li>

      • verbose (為有錯誤的信息添加規則名稱)

            "verbose": true

        默認:false</pre></li>

      • errorFilter (確定是否報告錯誤的篩選器函數)

            "errorFilter": "path/to/my/filter.js"

        默認:false

        請參閱 如何定義一個錯誤過濾器。</pre></li> </ul>

        Error Suppression

        某些時候,你可能無法忍受 JSCS 嚴謹的驗證規則,下面來看下如何壓制這些錯誤提示:

        Disabling a Rule

        你可以在.jscsrc配置文件中改變或禁用任何規則,例如:

        {
            // 使用 jquery 編碼風格規范
            "preset": "jquery",

        // 改變 requireCurlyBraces 規則
        "requireCurlyBraces": null
        

        }</pre>

        Inline Comments

        JSCS 支持兩種注釋方式來禁用或重新啟用規則,在文件頂部放置 JSCS 注釋可以禁用整個文件的規則檢查:

        / jscs: disable /
        / jscs: enable /

        // jscs: disable // jscs: enable</pre>

        你還可以用它們來以多種方式禁用規則:

        • 禁用所有規則

              var a = b;
              // jscs:disable
              var c = d; // 在這行及之后的所有錯誤都將被忽略
              // jscs:enable
              var e = f; // 在這行及之后的所有錯誤都將被報告
          </li>

        • 禁用特定的規則

              // jscs:disable requireCurlyBraces
              if (x) y(); // 在這行及之后的所有 requireCurlyBraces 錯誤都將被忽略
              // jscs:enable requireCurlyBraces
              if (z) a(); // 在這行及之后的所有錯誤包括 requireCurlyBraces 錯誤都將被報告
          </li>

        • 禁用特定的規則對于單行

          對單行進行特定規則忽略:

          if (x) y(); // jscs:ignore requireCurlyBraces
          if (z) a();
          
          

          禁用一個特定規則后,你可以啟用所有規則,該規則將重新啟用。

          // jscs:disable requireCurlyBraces
          if (x) y(); // 在這行及之后的所有 requireCurlyBraces 錯誤都將被忽略
          // jscs:enable
          if (z) a(); // 在這行及之后的所有錯誤包括 requireCurlyBraces 錯誤都將被報告
          
          

          你可以同時禁用多個規則,并逐步重新啟用它們。

          // jscs:disable requireCurlyBraces, requireDotNotation
          if (x['a']) y(); // 在這行及之后的所有 requireCurlyBraces 或 requireDotNotation 錯誤都將被忽略
          // jscs:enable requireCurlyBraces
          if (z['a']) a(); // 在這行及之后的所有錯誤包括 requireDotNotation 錯誤都將被報告,但 requireCurlyBraces 錯誤將被忽略
          // jscs:enable requireDotNotation
          if (z['a']) a(); // 在這行及之后的所有錯誤都將被報告</pre></li>
          

          </ul> 來自:http://segmentfault.com/a/1190000003701128

 本文由用戶 byc7 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!