ESLint 已更改
运行 ESLint 语录 在文件中,只报告新的警告和错误.
安装
通过你最喜欢的JS软件包管理器安装. 注意同伴对eslint的依赖.
譬如说,
npm install @automattic/eslint-changed eslint
使用量
为了确定变化, eslint-changed 需要文件的新旧版本以及文件之间的 diff 输出 ESLint .
如果你使用git,它可以自动决定这一点. 否则,您可以手动提供必要的信息.
两种模式中使用的选项如下:
--debug: 启用调试输出 .--ext <list>: JavaScript 文件扩展名的逗号分隔列表. 如果列出文件则忽略 。 (默认:".js")--format <name>: 用于输出的ESLint格式. (默认:"时髦")--in-diff-only: 仅在diff中更改的行上包含消息. 这可能会错过像删除一个var导致新的no-undef别的地方.
手动 diff
以下选项以手动模式使用 :
--diff <file>: 包含更改的统一 diff 的文件.--diff-base <dir>: diff 相对的基础目录. 当前目录的默认值 .--eslint-orig <file>:一个在未修改文件上包含 Eslint 的 JSON 输出的文件.--eslint-new <file>:一个包含已更改文件上的 Eslint 的 JSON 输出的文件.
与 gi
在git模式下, eslint-changed 需要能够运行 git。如果在 shell 路径中没有这个名称,
设置环境变量 GIT 视情况而定.
以下选项使用 git 模式 :
--git:表示您正在使用 git 模式.--git-staged: 将已上演的版本与HEAD版本相提并论(这是默认的).--git-unstaged: 将工作副本版本与已上演(或HEAD)版本进行比较.--git-base <ref>: 将 HEAD 版本与不同基数(如分支)的HEAD相比较.--eslint-options <name=value...>:通过ESLint的额外选项. 如果可能的话,价值被解释为JSON,否则它就被当作一字串来对待. 关于现有选项的详细情况,见https://eslint.org/docs/latest/integrate/nodejs-api#-new-eslintopters(或相当于正在使用的eslint版本).
实例
这将将分阶段的变动与总部进行比较.
npx @automattic/eslint-changed --git
这将与源/源比较.
npx @automattic/eslint-changed --git --git-base origin/trunk
这与前一个例子大同小异,但手动操作. 如果你用的是别的东西,你可能会这样做.
# 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
请注意,为了与上述完全相同,您想从diff中取出文件列表,而不是将所有文件都闪烁. 但是,这将工作.
这将将文件.js 与来源/ trunk 进行比较, 与通过等同 --flag v10_config_lookup_from_file 改为 eslint。 。 。 .
npx @automattic/eslint-changed --git --git-base origin/trunk --eslint-options flags='["v10_config_lookup_from_file"]' -- file.js
灵感
我们一直在使用 已更改 有一阵子了 也想让ESLint也一样.