• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.jsonruleConfig.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.jsonruleConfig.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![homecheck社区开发讨论](document/img/homecheck社区开发讨论.JPG)