moxio / captainhook-eslint
Captain Hook 插件,用于通过 ESLint 验证文件
v1.0.0
2021-03-18 14:43 UTC
Requires
- php: ^7.2 || ^8.0
- captainhook/captainhook: ^4.4 || ^5.0
- sebastianfeldmann/cli: ^3.0
- sebastianfeldmann/git: ^2.2 || ^3.0
Requires (Dev)
- phpunit/phpunit: ^8.5
README
moxio/captainhook-eslint
本项目是 CaptainHook 的插件,用于在 git 预提交钩子中使用 ESLint 检查 JavaScript 文件。默认情况下,所有 *.js
和 *.mjs
文件都会被检查,如果发现一个或多个错误,则提交将被阻止。ESLint 生成的警告将被忽略。
安装
使用 composer 将其安装为开发依赖项
$ composer require --dev moxio/captainhook-eslint
使用方法
将 ESLint 验证添加到您的 captainhook.json
配置文件中的 pre-commit
{ "pre-commit": { "enabled": true, "actions": [ { "action": "\\Moxio\\CaptainHook\\ESLint\\ESLintAction" } ] } }
该操作期望 ESLint 作为本地 NPM 包安装(即在 node_modules/.bin/eslint
中可用)。它应该以自动查找适当配置的方式配置,例如作为一个 .eslintrc.*
文件,或者在 package.json
中的 eslintConfig
字段中。
条件使用
如果您只想在 ESLint 安装时执行 ESLint 验证(即在 node_modules/.bin/eslint
中可用),您可以在操作中添加相应的条件
{ "pre-commit": { "enabled": true, "actions": [ { "action": "\\Moxio\\CaptainHook\\ESLint\\ESLintAction", "conditions": [ { "exec": "\\Moxio\\CaptainHook\\ESLint\\Condition\\ESLintInstalled" } ] } ] } }
这可能在以下场景中很有用:您有一个共享的 CaptainHook 配置文件,该文件既包含使用 ESLint 的项目,也包含不使用 ESLint 的项目。如果 ESLint 已安装,则执行操作。在没有 ESLint 的项目中,验证将被跳过。
配置要检查的文件扩展名
默认情况下,带有 .js
或 .mjs
扩展名的提交文件将被检查。如果您想自定义此设置,例如要验证 TypeScript 文件,您可以使用 extensions
选项,该选项接受一个数组,包含要 lint 的文件扩展名。
{ "pre-commit": { "enabled": true, "actions": [ { "action": "\\Moxio\\CaptainHook\\ESLint\\ESLintAction", "options": { "extensions": [ "js", "mjs", "ts", "tsx" ] } } ] } }
版本控制
本项目遵循 语义化版本控制。
许可
本项目采用 MIT 许可证发布。