automattic / eslint-changed
描述
v2.0.9
2024-08-29 19:01 UTC
Requires (Dev)
- automattic/jetpack-changelogger: ^4.2.6
This package is auto-updated.
Last update: 2024-09-18 03:17:34 UTC
README
在文件上运行ESLint,只报告新警告和错误。
安装
通过您喜欢的JS包管理器安装。注意对eslint的依赖。
例如,
npm install @automattic/eslint-changed eslint
用法
为了识别更改,eslint-changed
需要文件的旧版和新版的ESLint输出,以及它们之间的差异。如果您使用git,它可以自动确定这一点。否则,您可以手动提供必要的信息。
两种模式都使用的选项
--debug
:启用调试输出。--ext <list>
:JavaScript文件扩展名的逗号分隔列表。如果列出了文件,则忽略。默认为".js"。--format <name>
:用于输出的ESLint格式。(默认:"stylish")--in-diff-only
:仅包含差异中更改的行的消息。这可能会错过像删除一个var
导致其他地方出现新的no-undef
之类的信息。
手动差异
以下选项用于手动模式
--diff <file>
:包含更改的统一差异的文件。--diff-base <dir>
:差异相对于的基本目录。默认为当前目录。--eslint-orig <file>
:包含在未更改文件上ESLint JSON输出的文件。--eslint-new <file>
:包含在更改文件上ESLint JSON输出的文件。
使用git
在git模式下,eslint-changed
需要能够运行git
。如果此名称在shell路径中不可用,请设置环境变量GIT
。
以下选项用于手动模式
--git
:表示您正在使用git模式。--git-staged
:将暂存版本与HEAD版本比较(这是默认值)。--git-unstaged
:将工作副本版本与暂存(或HEAD)版本比较。--git-base <ref>
:将HEAD版本与不同基本(例如分支)的HEAD比较。
示例
这将比较暂存更改与HEAD。
npx @automattic/eslint-changed --git
这将比较HEAD与origin/trunk。
npx @automattic/eslint-changed --git --git-base origin/trunk
这与前面的示例几乎一样,但手动进行。如果您使用的是git之外的东西,您可能做的是这样。
# Produce a diff. git diff origin/trunk...HEAD > /tmp/diff # Check out the merge-base of origin/trunk and HEAD. git checkout origin/trunk...HEAD # Run ESLint. npx eslint --format=json . > /tmp/eslint.orig.json # Go back to HEAD. git checkout - # Run ESLint again. npx eslint --format=json . > /tmp/eslint.new.json # Run eslint-changed. npx @automattic/eslint-changed --diff /tmp/diff --eslint-orig /tmp/eslint.orig.json --eslint=new /tmp/eslint.new.json
请注意,为了与上面完全相同,您可能想要从差异中提取文件列表,而不是检查所有内容。但这将起作用。
灵感
我们使用了一段时间的phpcs-changed,并希望为ESLint实现相同的功能。