明源云创前端代码质量监控实践

Posted 明源云前端星计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了明源云创前端代码质量监控实践相关的知识,希望对你有一定的参考价值。

        随着云创前端专业线人员逐步壮大,如何监控前端代码质量、有效约束前端代码规范的落地迫在眉睫。经讨论决定专业线内部启动代码质量专项,提出代码规范工具化约束、代码质量可视化监控的方案。


        本次专项由新同事高月明同学牵头,并最终落地。


一、前端代码规范梳理

        

      根据讨论整理的前端规范,制定出了对应的ESLint规则。

       规则配置指南:http://cn.eslint.org/docs/rules


       梳理后的规则(基于Airbnb-base规则)

       https://git.mysoft.com.cn/mic-fed/open/raw/master/eslint/eslintrc.js



二、前端编辑器安装ESLint插件,智能提示


【VS Code】

  • 安装 ESLint 扩展

  • 依次点击 文件 -> 首选项 -> 设置,在 settings.json 中添加以下配置:


明源云创前端代码质量监控实践


  • VS Code 推荐安装 Vue 官方扩展 Vetur,包含了 vue 的语法高亮、Emmet、Linting、Auto Completion等功能


明源云创前端代码质量监控实践

[提示] ESLint 的规则可能会和其他格式化扩展(e.g. JS-CSS-html-Formatter)冲突,导致 AutoFix 失败。请确保其他其他格式化扩展的规则遵循ESLint 规范


【Sublime Text 3】

  • 安装 SublimeLinter 插件

  • 安装 SublimeLinter-contrib-eslint 插件

[提示] Sublime 不支持 AutoFix


【Atom】

  • 安装 Linter 插件

  • 安装 Linter-eslint 插件

  • 修改 Linter Eslint 插件配置:

    • 勾选 Fix errors on save

    • 勾选 Lint HTML Files


【Webstorm】

   Webstorm 自带了 ESLint ,无需安装

  • 进入 ESLint 配置,勾选 Enable

    点击 File -> Settings -> Languages & Frameworks -> javascript -> CodeQuality Tools -> ESLint


  • 取消其他校验工具

    点击 File -> Settings -> Editor -> Inspections,在右侧进入 JavaScript -> Code quality tools;勾选 ESLint 并取消勾选其它所有的选项


  • 配置 Auto Fix

    点击 File -> Settings -> Tools -> External Tools,在右侧新建以下配置

 明源云创前端代码质量监控实践

[提示] Webstorm不支持保存时 Auto fix,按如上的配置之后,右键文件名,选

择 External Tools -> eslint-fix 可自动修复此文件


三、前端项目集成ESLint


  • 安装相关插件


明源云创前端代码质量监控实践

[提示] 使用时根据项目情况(React或Vue)选择安装以上插件


  • 拷贝.eslintrc.js文件到项目根目录,并配置.eslintignore忽略文件,例如

明源云创前端代码质量监控实践


  • 构建系统集成

【webpack】

明源云创前端代码质量监控实践

【gulp】

明源云创前端代码质量监控实践


四、代码Git提交预检查

Git 能在特定的重要动作发生时触发自定义脚本,Git 的钩子分两种:客户端钩子和服务器端钩子。客户端钩子由诸如 commit 和 push 这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。

本方案采用客户端钩子的 pre-commit 钩子,在客户端进行 commit 操作时,调用 lint 命令对代码进行校验。

pre-commit VS pre-push

pre-commit:在键入提交信息前运行。它用于检查即将提交的快照,如果该钩子以非零值退出,Git 将放弃此次提交。

pre-push:在 git push 运行期间, 更新了远程引用但尚未传送对象时被调用。 它接受远程分支的名字和位置作为参数,同时从标准输入中读取一系列待更新的引用。如果该钩子以非零值退出,Git 将终止此次 push。

pre-push 钩子在 push 操作的时候触发,此时当前分支已经有了提交记录。如果钩子校验失败,只能采用两种方法处理:

  1. 修改代码并提交,然后 rebase / revert修改之前的提交记录

  2. 修改代码并继续提交,这样提交历史就会留下之前的错误提交

pre-commit 钩子在 commit 操作时触发。如果钩子校验失败,会阻止本次提交。此时修改代码然后再次提交,不仅方便而且不会污染提交历史。

安装

在项目中增加 pre-commit 依赖:

明源云创前端代码质量监控实践

配置

在 package.json 文件中增加 pre-commit 字段

明源云创前端代码质量监控实践

使用

在进行 commit 操作时,pre-commit 中 run 字段指定的脚本会依次运行。如果某个脚本返回错误码 1,本次 commit 操作将会失败。

五、前端项目接入Sonar代码质量监控平台

配置jenkins构建,执行Execute SonarQube Scanner,如

明源云创前端代码质量监控实践

实时监控

明源云创前端代码质量监控实践

明源云创前端代码质量监控实践


六、质量持续跟踪

  • 每次前端例会前,固定开展代码质量审视环节

  • QA妹妹定期刷新质量情况

明源云创前端代码质量监控实践

明源云创前端代码质量监控实践

以上是关于明源云创前端代码质量监控实践的主要内容,如果未能解决你的问题,请参考以下文章

德施曼&明源云采购|强强联合,加速发力B端合作,品牌智能锁成供应链强动力

技术分享|明源云天际集成开放平台接口中心基于IdentityServer4的鉴权机制

2021.7 货拉拉虾皮有赞。。。高级前端岗面试整理

国内最大.NET平台重金招募中 你竟然还不知道?

前端代码质量-圈复杂度原理和实践

前端代码质量-圈复杂度原理和实践