提供代码规范,同时支持代码美化,commit检查功能。
提供代码规范,同时支持代码美化,commit
检查功能。
内部集成了 eslint
,stylelint
,prettier
,lint-staged
,commitlint
等,简化项目初始化配置流程。
注意!!!需要自己在项目中配置.eslintrc
、.stylelintrc
、.prettierrc
、commitlint.config.js
。
npm install magic-lint --save-dev
Usage: magic-lint [options] file.js [file.js] [dir]
# 提交commit触发校验
magic-lint --commit --commit.config=./../commitlint.config.js
# 指定路径 lint
magic-lint --prettier --eslint --stylelint src/
# 只对提交的代码进行 lint
magic-lint --staged --prettier --eslint --stylelint
# 给eslint、prettier添加执行参数
magic-lint --eslint.debug -s.formatter=json -p.no-semi
Options:
--commit, -C check commit msg [boolean] [default: false]
--staged, -S only lint git staged files [boolean] [default: false]
--prettier, -p format code with prettier [boolean] [default: false]
--eslint, -e enable lint javascript [boolean] [default: false]
--stylelint, --style, -s enable lint style [boolean] [default: false]
--fix, -f fix all eslint and stylelint auto-fixable problems [boolean] [default: false]
--quiet, -q report errors only [boolean] [default: false]
--cwd current working directory [default: process.cwd()]
--harmony work as prettier-eslint [boolean] [default: true]
和谐模式,目的是处理prettier
和eslint
的冲突问题,会和prettier-eslint
一样,先用prettier
处理,再用eslint
处理。
默认开启。
以husky
最新版(v7及以上)为例:
husky
npx husky-init && npm install # npm
npx husky-init && yarn # Yarn 1
yarn dlx husky-init --yarn2 && yarn # Yarn 2
脚本执行会在package.json
添加一个示例pre-commit
钩子,默认会执行npm test
命令。
如果要修改的话打开.husky/pre-commit
移除npm test
。
// 比如在commit-msg时执行命令
npx husky add .husky/commit-msg '你要执行的命令'
注意:如果是Windows
用户使用npx husky add ...
可能会遇到注意,请使用node node_modules/.bin/husky add ...
命令替代。
husky
现在采用了Shell
脚本的方式,实现是更自由了,但是也没法和之前无缝使用了,请仔细阅读。
$(dirname "$0")
指代的是hook
所在的目录commit
编辑.husky/commit-msg
文件,添加:
npx --no-install magic-lint --commit --commit.config "$(dirname "$0")/../commitlint.config.js" --commit.edit "$1"
编辑.husky/pre-msg
文件,添加:
npx --no-install magic-lint --staged --eslint --stylelint --prettier --fix"
搭配husky
食用,在 package.json
添加
"husky": {
"hooks": {
"pre-commit": "magic-lint --staged --eslint --stylelint --prettier --fix",
"commit-msg": "magic-lint --commit"
}
}
另外迁移指南请看Migrate from v4 to v7