代碼規范工具

sonar
eslint
htmlhint配置
csslint
csslint配置

eslint配合githook校驗

package.json文件

 "scripts": {
     "precommit": "npm run lint",
     "prepush": "npm run lint:push",
     "lint:dev":"eslint $(git diff origin/develop --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$')",
     "lint:devFix":"eslint --fix $(git diff origin/develop --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$')",
     "lint:push": "eslint $(git diff-index --cached --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$')",  
     "lint": "eslint $(git diff-index HEAD --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$')",
     "lint:fix": "eslint --fix $(git diff-index HEAD --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$')",
     "lint:devHtml":"eslint $(git diff origin/develop --name-only --diff-filter ACMR |grep '\\.\\(jsx\\|es6\\|js\\)$') -f html > Report.html"
    },
"devDependencies": {
  "babel-eslint": "^7.2.3",
  "eslint": "^3.19.0",
  "eslint-config-airbnb-base": "^11.1.3",
  "eslint-plugin-import": "^2.2.0",
  "eslint-plugin-react": "^6.10.3",
  "husky": "^0.13.3"
  }

命令解釋:

    “precommit”:代碼本地提交前執行
    “prepush”:代碼push之前執行
    “lint:dev”:校驗本地分支代碼和develop分支需要merge文件
    "lint:devFix":修復本地分支代碼和develop分支需要merge文件
    "lint:push": 校驗需要push文件
    "lint": 校驗需要提交代碼
    "lint:fix":修復需要提交文件
    "lint:devHtml":以html格式輸出本地分支和develop相關錯誤

.eslintrc.json

    { 
      "parser": "babel-eslint",
      "env": {
          "browser": true,
          "es6": true,
          "jquery": true
      },
    "globals": {
        "$": false,
        "jQuery": false,  
      },
    "extends": "eslint:recommended",
    "rules": {
        "no-alert": 1,
        "no-bitwise": 1,
        "curly": 1,
        "eqeqeq" : 1,
        "no-eq-null": 1,
        "guard-for-in": 1,
        "no-empty": 1,
        "no-console": 1,
        "no-irregular-whitespace": 1
    },
  "parserOptions": {
        "ecmaVersion": 6, //指定ECMAScript支持的版本,6為ES6
        "sourceType": "module", //指定來源的類型,有兩種”script”或”module”
        "ecmaFeatures": {
                "jsx": true//啟動JSX
         }
    },
"ignorePattern": "app/components/common/**/*.{js,jsx}"
  }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言 由于項目開發多成員協作問題,程序員水平參差不急、程序員開發習慣不同,項目的不斷迭代會導致代碼質量問題、代碼維...
    王永迪閱讀 2,650評論 0 3
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,569評論 2 45
  • 01 小優受邀去參加同學的生日派對,回家卻一臉不開心。媽媽細問之下才知道,原來是手工禮物惹的禍。 那天小優帶著自制...
    透冰閱讀 667評論 0 0
  • 早教——做了父母的人最關心的一個話題?!安蛔尯⒆虞斣谄鹋芫€”,這可能是天下所有父母的心聲。現在的80后90后父母們...
    L云艷閱讀 466評論 1 1
  • 在那無數道目光矚目的戰臺之中,此時卻是溝壑縱橫,一道道巨大無比的裂縫猶如猙獰的巨嘴一般蔓延開來,占據了整座戰臺。 ...
    混沌天書閱讀 303評論 0 1