首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >HarmonyOS 开发实践 —— 基于Code Linter实现代码检查

HarmonyOS 开发实践 —— 基于Code Linter实现代码检查

原创
作者头像
小帅聊鸿蒙
发布2024-11-28 20:24:04
发布2024-11-28 20:24:04
8180
举报
文章被收录于专栏:鸿蒙开发笔记鸿蒙开发笔记

Code Linter针对ArkTS/TS代码进行最佳实践/编程规范方面的检查。

检查方法:

1.编辑器自带Code Linter。

在已打开的代码编辑器窗口单击右键点击Code Linter,或在工程管理窗口中鼠标选中单个或多个工程文件/目录,右键选择Code Linter执行代码检查。

2.Code Linter命令行。

Code Linter同时支持使用命令行执行代码检查与修复,可将Code Linter工具集成到门禁或持续集成环境中。

获取:请在 获取命令行工具 下载CommandLine。

配置:命令行工具需要解压工具包,将bin目录配置到配置完环境变量才能使用。

场景一:配置规则增加删除

配置步骤:

在工程根目录下创建code-linter.json5配置文件,可对于代码检查的范围及对应生效的检查规则进行配置,ruleSet和rules配置项共同确定了生效的 规则范围 。具体配置项功能示例如下:

注:需要使用官网自带的规则,不支持自定义。

对类名Foo的命名风格校验:

代码语言:ts
复制
"ruleSet":
[
  //快捷批量引入的规则集, 枚举类型:plugin:@typescript-eslint/all, plugin:@typescript-eslint/recommended, plugin:@cross-device-app-dev/all, plugin:@cross-device-app-dev/recommended等
  "plugin:@typescript-eslint/recommended"
],
//可以对ruleSet配置的规则集中特定的某些规则进行修改、去使能, 或者新增规则集以外的规则;ruleSet和rules共同确定了代码检查所应用的规则
"rules":
{
  "@typescript-eslint/naming-convention": [
    "error",
    {
      // selector属性必选,配置要检查的语法,这里配置的class表示检查自定义组件名
      "selector": "class",
      // format属性必选,配置期望的命名风格,支持枚举值,这里配置的PascalCase表示大驼峰风格
      "format": ["PascalCase"],
      // custom属性可选,配置用户自定义的命名风格
      "custom": {
        // regex属性必选,配置具体的正则
        "regex": "^[a-zA-Z]+$",
        // match属性必选,配置为true表示正则未命中时报错;配置为false表示正则命中时报错
        "match": true
      }
    }
  ]
}

效果:

新建test.ets文件,使用非驼峰方法命名类名。

使用codelinter检测。

场景二:指定代码检查范围

如果只想检查test.ets文件:

配置步骤:通过配置"file"和"ignore"字段来指定需要检测的文件类型和忽略检测的文件。

代码语言:ts
复制
//用于表示配置适用的文件范围的 glob 模式数组。在没有指定的情况下,应用默认配置
"files": [
//字符串类型
  "**/*.js",
  "**/*.ts"
],
//一个表示配置对象不应适用的文件的 glob 模式数组。如果没有指定,配置对象将适用于所有由 files 匹配的文件
"ignore": [
//字符串类型
  "build/**/*",
  "node_modules/**/*"
],

说明:当前指定目录是以模块根路径为绝对路径指定,不支持绝对路径。

效果:codelinter根据通配符在每个模块下按**/test.ets匹配文件。

场景三:将codelinter 集成到流水线

步骤:

  1. 按上述步骤配置完commandline tools工具。
  2. 在非工程根目录下使用命令行工具:

codelinter dir /dir指定执行检查的工程根目录,/ -c filepath dir/指定执行检查的规则配置文件位置,/ --fix // 对指定工程中的告警进行修复。

  1. 保存指定代码检查结果,默认放在命令行工具文件夹result文件下。

codelinter -o filepath2 // filepath2为指定存放代码检查结果的文件路径。

如何触发:

在流水线构建命令前,插入上述执行脚本即可

常见问题

Q:命令工具如何指定具体文件进行检查。

A:当前指定目录是以模块根路径为绝对路径指定,不支持绝对路径。

Q:如何自定义规则。

A:当前不支持自定义规则,必须官网已经适配的现有规则。

Q:ArkTSCheck与codelinter区别。

A:codelinter检查的结果一般不会影响编译,用户不修改也没关系;ArkTscheck一般是语法规范类的检查,会影响编译,这两个是不同方面的检查,检查规则不一样。codelinter检查的结果,用户可以选择不改,又或者不想检查出来,就可以/ eslint-disable /屏蔽,但只能屏蔽有Ignore图标的。若扫描结果中出现误报,单条告警结果后的有Ignore图标,可以屏蔽若检查规则后存在warning图标,表明此处存在ArkTS语法规范问题。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:

  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识;
  • 想要获取更多完整鸿蒙最新学习知识点,可关注B站:码牛课堂;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景一:配置规则增加删除
    • 配置步骤:
    • 效果:
  • 场景二:指定代码检查范围
  • 场景三:将codelinter 集成到流水线
  • 常见问题
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档