環境
node-v12,sonarqube7.5
package.json
“scripts”:{
"lint:report": "npx eslint ./src -f json"
}
制造eslint違規檔案(我随便找了一個檔案,選擇了一條no-empty違規 https://cn.eslint.org/docs/rules/no-empty)
執行指令生成待導入的.json檔案
npm run lint:report -s > report.json
進入sonarqube平台并建立名稱為eslint的project,為了更好的展示,我建立了一個空的Quality Profiles,然後為eslint project配置上這個規則集。(如果eslint的.json檔案中有違規資料,導入平台後issues顯示為0,那麼說明有問題。)
導入sonarqube 【注意json檔案名,我有替換過,覺得eslint.json命名不好改成了report.json】 【去除-Dsonar.language=js,加上輸出日志會對不符合.js格式的檔案提示ignore告警】
sonar-scanner -Dsonar.projectKey=eslint -Dsonar.projectName=eslint -Dsonar.sources=/xx/xx/src -Dsonar.eslint.reportPaths=eslint.json
結果展示 【issues顯示eslint違規問題,說明成功】
連結:
eslint中文網站:https://cn.eslint.org/docs/rules/
sonarqube docs:導入ESLint問題報告
https://docs.sonarqube.org/latest/analysis/external-issues/
sonarqube論壇:https://community.sonarsource.com/t/using-eslint-scanner-for-sonarqube-7-9/13091/4