Skip to content

Checklist is an automated detection tool that ensures code quality. It can be used with Husky to implement code pre-commit checks. It can also be integrated into automated deployment scripts.

License

Notifications You must be signed in to change notification settings

yhtml5/check-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Check List

概念

check list 是一个自动化检测工具, 补充了 eslint/单元测试 等工具之外的功能. 确保代码的质量, 它可以集成到自动化部署脚本中, 也可以配合husky, 实现代码提交前检测

在一个多人协作过程的项目中, 我们会遇到许多问题

  • 删除关键性文件, 造成严重问题
  • 引入过大的包, 造成性能问题: import _ from lodash
  • 提交了错误代码: git冲突 <<<<<<<
  • 使用了特殊兼容性代码, babel只配置es6: Date.now, [].includes
  • 调试代码未关闭, 使用了 mock数据, debugger, alert
  • 部署后, 提醒后续操作内容

Process

config => rule => ruleHandler

npm run check => check() => rule: handler[type] => handler: title/regex/require/limit => lib: checkCode/getDirSize/checkRequiredFiles => ask => console result

命令行

在项目根目录下增加config.js

$ npm i @yhtml5/check-list -g $ check ./demo/config.js

JavaScript API (support soon)

@yhtml5/check-list 提供 JavaScript 接口那样可以通过 Node.js 来使用。

$ npm i @yhtml5/check-list -D

const check = require('@yhtml5/check-list')
check(config)

配置文件(Configuration files)

配置文件是一个commonjs模块,它对外暴露一个对象,这个对象包含了一些 @yhtml5/check-list 需要的一些选项。通常,我们把这个配置文件叫做config.js,它通常位于项目的根目录

rules

参考 @yhtml5/check-list/demo/config.js config.checkList.rules 是一个规则数组

type: title

不检查, 输出 describe, 用作分割线

{
  type: 'title',
  describe: 'Check List Rules:',
}

type: require

检查关键性文件是否丢失

{
  type: 'require',
  describe: '检查文件完整性: 关键性文件',
  paths: [__dirname]
}

type: limit

检查文件大小限制

{
  type: 'limit',
  describe: '检查文件大小限制: dist',
  paths: [__dirname],
  min: 10,
  max: 100
}

type: regex

正则匹配文件内容, 返回 buffer, 需要考虑 [空格, 多行, 注释] 等情况

  type: 'regex',
  describe: '检查是否存在: 冲突代码',
  paths: [__dirname],
  regex: /^<<<<<|^>>>>>/gm,

About

Checklist is an automated detection tool that ensures code quality. It can be used with Husky to implement code pre-commit checks. It can also be integrated into automated deployment scripts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •