1# homecheck 2 3## 项目简介 4 5该项目(homecheck)专为提升代码质量而设计,能高效识别代码缺陷并提出方案;其核心功能是对应用工程项目执行静态代码分析,评估代码在安全性、性能等方面上的表现,精准定位问题及其在代码中的位置。 6 7## 目录 8 9``` 10homecheck 11├─config/ # 项目配置 12├─document/ # 项目文档 13├─resources/ # 依赖库 14├─src/ 15│ ├─checker/ # 项目检测规则功能代码 16│ ├─codeFix/ # 修复 17│ ├─matcher/ # 匹配类型 18│ ├─model/ # 模块 19│ ├─utils/ # 公共接口 20│ └─run.ts # 项目入口 21└─test/ # 测试目录 22``` 23 24## 项目主体流程 25 261.读取配置文件projectConfig.json和ruleConfig.json 27 282.使用**ArkAnalyzer**项目构建**sence** 29 303.根据配置文件参数,获取需要检测的文件 31 324.前处理 33 345.进行检测 35 366.后处理 37 38## QuickStart 39 40### 1.下载本项目 41 42### 2.进入项目根目录,打开终端 43 44``` 45cmd 46``` 47 48### 3.安装依赖库 49 50``` 51npm install 52``` 53 54### 4.修改配置 55 56**config\projectConfig.json**中修改项目配置 57示例: 58 59``` 60{ 61 "projectName": "TestProject", 62 "projectPath": "/path/to/project", 63 "logPath": "./HomeCheck.log", 64 "ohosSdkPath": "/path/to/ohosSdk", 65 "hmsSdkPath": "/path/to/hmsSdk", 66 "checkPath": "", 67 "sdkVersion": 14, 68 "fix": "true", 69 "npmPath": "", 70 "sdksThirdParty": [ 71 { 72 "name": "thirdParty", 73 "path": "./resources/thirdPartyModules", 74 "moduleName": "" 75 } 76 ] 77} 78``` 79字段说明: 80``` 81projectName:需要检测工程的名字 82projectPath:需要检测工程的路径 83logPath:日志输出路径 84ohosSdkPath:ohossdk路径,比如DevEco Studio安装目录下的sdk\default\openharmony\ets,请使用绝对路径 85hmsSdkPath:hmssdk路径,比如DevEco Studio安装目录下的sdk\default\hms\ets,请使用绝对路径 86checkPath:解析指定的文件 87sdkVersion:sdk版本 88fix:是否修复 89npmPath:自定义规则npm路径 90sdksThirdParty:sdk三方库,name:库名称,path:库路径,moduleName:模块名称 91``` 92 93**config\ruleConfig.json**中修改规则配置 94示例: 95 96``` 97{ 98 "files": [ 99 "**/*.ets", 100 "**/*.ts" 101 ], 102 "ignore": [ 103 "**/ohosTest/**/*", 104 "**/node_modules/**/*", 105 "**/build/**/*", 106 "**/hvigorfile/**/*", 107 "**/oh_modules/**/*", 108 "**/.preview/**/*" 109 ], 110 "rules": { 111 "@performance/foreach-args-check":3 112 }, 113 "ruleSet": [ 114 "plugin:@performance/all", 115 "plugin:@correctness/all" 116 ], 117 "overrides": [], 118 "extRuleSet": [] 119} 120``` 121 122字段说明: 123 124参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/ide-code-linter-V14#section1782903483817 125``` 126files:待检测文件类型 127ignore:过滤文件 128rules:可以基于ruleSet配置的规则集,新增额外规则项 129ruleSet:规则集 130overrides:定制化检查的规则 131extRuleSet:自定义规则 132``` 133extRuleSet:自定义规则,参考[自定义规则](#自定义规则) 134 135### 5.启动项目 136 137注意修改projectConfig.json和ruleConfig.json文件路径 138 139#### 5.1 命令行启动,示例: 140 141根目录下执行 142``` 143node -r ts-node/register ./src/run.ts --projectConfigPath=./config/projectConfig.json --configPath=./config/ruleConfig.json 144``` 145 146#### 5.2 vscode启动: 147 148根目录新建.vscode目录,并新建launch.json文件,内容参考.vscode_sample\launch.json 149 150点击左侧运行和调试按钮,点击启动程序,开始运行,运行结束查看HomeCheck.log 151#### 5.3 webstorm启动: 152 153## 新增规则 154 155### 自定义规则 156参考:[自定义规则开发指南](document/ExtRule自定义规则开发指南.md) 157 158### 检测规则 159参考:[新增检测规则开发指南](document/规则开发指南.md) 160 161## api 162参考:[api说明](doc/globals.md) 163 164## 打包 165 166根目录下执行命令: 167 168``` 169npm pack 170``` 171产物,根目录下: 172 173homecheck-1.0.0.tgz 174 175## 安装与使用 176 177参考:[homecheck安装与使用指南](document/homecheck安装与使用指南.md) 178 179## HomeCheck附带工具使用指南 180 181参考:[HomeCheck附带工具使用指南](document/HomeCheck附带工具使用指南.md) 182 183### 日志 184 185运行结果请查看根目录下的HomeCheck.log 186 187## 代码上库 188遵守openharmony-sig代码上库规范, 操作方法请参考:[创建pr指南](document/PR指南.md) 189 190## Issues 191提交Issues请参考:[Issues指南](document/Issues指南.md)。 192 193## 添加自验证测试用例 194自验证用例请参考:[单元测试用例开发指南](document/单元测试用例开发指南.md) 195 196## 相关仓 197 198[ArkAnalyzer](https://gitcode.com/openharmony-sig/arkanalyzer) 199 200## 欢迎加入homecheck社区开发讨论 201 202