环境
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