问题标签 [lint-staged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
717 浏览

javascript - 尝试使用预提交挂钩删除未使用的导入,但正在使用的导入正在被删除

我刚安装eslint-plugin-unused-imports。当我提交时,它会完成所有的 linting 工作并删除一堆导入,即使其中许多导入正在文件中使用。

可能值得注意,也可能不值得注意,这个项目有一堆遗留的 Backbone 和更新的 React 组件,其中一些 Backbone 视图呈现 React 组件。此外,这是一个 JS 而非 TS 项目。

eslint-plugin-unused-imports 问题状态:

https://github.com/sweepline/eslint-plugin-unused-imports/issues/new?assignees=&labels=&template=bug_report.md&title=

如果问题是某些东西被错误地标记为未使用的导入并因此被删除。这是导入包(@typescript-eslint/eslint-plugin用于 TS 或eslintJS)及其 no-unused-vars规则的问题。除了在上游进行修复时更新之外,我对此无能为力。

如果no-unused-vars上游添加了应该自动修复的新规则,请标记您的问题规则添加

但我不确定如何解决这个问题。

下面是我的 linting 设置:

0 投票
1 回答
1284 浏览

javascript - lint-staged 为不同的文件夹运行不同的命令

我的项目文件夹设置了两个子目录,frontendbackend分别存放代码。

因此在根文件夹中我有:

在根的 package.json 中,我有:

但是,如果我这样做git add并且git commit在根级别上,它会一直说No staged files match any configured task.

我已经查看了两个子 package.json 并且它们都有效。我不确定如何配置 lint-staged 来过滤文件。

0 投票
1 回答
2282 浏览

github-desktop - GitHub 桌面 Husky 预提交钩子没有

我按照许多其他项目(在 Mac OS11 上)husky@4安装了。lint-staged终端命令流程git add .git commit -m 'something'流程工作正常:Husky 的 pre-commit 钩子和lint-staged命令被成功拾取。但是,Github 桌面预提交挂钩似乎没有表现。

我试过查看.git/hooks/pre-commit文件,它就在那里:

命令:

GitHub Desktop 没有找到这个的还有其他原因吗?

0 投票
3 回答
22414 浏览

eslint - 如何使用 Husky 版本 6 进行 lint-staged 工作

我尝试使用赫斯基的pre-commitlint-staged.

这些已安装:

在 package.json 我有:

如果我跑步npm run lint,目前我有2 problems (1 error, 1 warning)。所以当我运行时git commit,我不希望能够提交,对吗?但我可以继续并完成提交。

怎么了?

更新:

我将哈士奇降级为4.3.8

在里面package.json,在我的脚本中,我有:

和:

当我进行提交时,赫斯基仍然没有被解雇。怎么了?

更新 2: 我无法让赫斯基4工作,所以我升级到版本6

现在它工作正常。

我唯一不能去工作的是 lint-staged。

  • 我添加了钩子npx husky add .husky/pre-commit "lint-staged"

但后来我明白了.husky/pre-commit: line 4: lint-staged: command not found吗?如何lint-staged使用 Husky 版本 6?

0 投票
0 回答
663 浏览

yarnpkg - 如何让 `npx mrm lint-staged` 工作

我知道lint-staged 没有在预提交时运行,但没有一个解决方案对我有帮助。

我跑了npx mrm lint-staged,但预提交钩子没有运行。我去检查.git/hooks,husky这里没有创建任何钩子。我已经尝试卸载并重新安装 husky。不确定这是否重要,但我使用 yarn 作为我的包管理器。也不确定它是否重要,但我的 npx 使用的是版本 6 而不是版本 10(我无法升级它,这是我在另一个 stackoverflow 问题中提出的问题)。

0 投票
1 回答
267 浏览

lint - 如何为 lint-staged 设置多种模式?

例如,我在 .rb 和 .js 文件上进行了匹配。

例如**/*.{js,rb}

并且还想匹配GemfileRakefile例如。

0 投票
3 回答
8504 浏览

visual-studio-code - VSCODE 和 GitHub 桌面预提交挂钩:npx:找不到命令

我正在开始一个新的 repo,认为我应该使用最新的 Huksy v6,它是使用他们的设置指南从 LintStaged 安装的:

这会添加必要的包并添加包括预提交文件在内的 husky 文件:

当我在终端中运行我的提交时,它工作正常。但是,如果我尝试在 GitHub Desktop 或 VSCode 中运行我的提交(我知道一些队友会这样做),则会导致两者都出错:

npx:找不到命令。husky - 预提交挂钩退出,代码为 127(错误)

我已经安装了 npx:

如果我尝试在 globall 中安装,如其他 StackOverflow 建议中所述,它会返回有关现有位置的警告(带 & 不带 out sudo):

呃!EEXIST:文件已存在,符号链接 '../lib/node_modules/npx/index.js' -> '/Users/plucks/.nvm/versions/node/v14.15.4/bin/npx' npm ERR!文件存在:/Users/plucks/.nvm/versions/node/v14.15.4/bin/npx npm ERR!删除现有文件并重试,或运行 npm npm ERR!使用 --force 可以鲁莽地覆盖文件。

我有什么办法可以让 VSCode 和 GitHub Desktop 等程序运行吗?

0 投票
1 回答
1855 浏览

prettier - npx mrm lint-staged 错误,“未找到预设“默认”。”

问题示例:

无法运行此命令,我不知道为什么!

0 投票
1 回答
1726 浏览

c# - 如何使用 dotnet 格式在子文件夹中格式化整个项目?

我有一个 .Net 5 应用程序并想使用 dotnet 格式。首先,我将commitlint、husky​​lint-staged添加到存储库中。文件夹结构看起来像

配置好的 package.json 文件看起来像

钩子因此输出而失败

我试图将 package.json 文件中的 dotnet 命令修改为

dotnet 格式 ./MyCsharpProject/MyCsharpProject.sln

但不幸的是我得到了多个错误

简单地对整个 C# 项目进行 lint 的正确命令是什么?


更新

我试图改变 package.json 中的这一行

"*.cs": "dotnet format --include"

"*.cs": "dotnet format ./MyCsharpProject/MyCsharpProject.sln"

现在预提交检查工作正常。我唯一在想的是,当我修改 .cs 文件并添加多个带有一些选项卡的空行时,我得到了这个输出

  • 为什么对带有多个选项卡的空行显示“无法识别的命令或参数”?
  • 为什么显示帮助部分?
0 投票
0 回答
126 浏览

c# - 如何将集合传递给 husky 以在预提交时运行多个操作?

我正在使用 commitlint、husky 和 ​​lint-staged 来验证我的 C# 项目的提交消息和格式。package.json 文件看起来像

在提交之前,我还将确保

  • 所有软件包都可用=>dotnet restore
  • 项目被编译=>dotnet build --no-restore
  • 所有测试都通过 =>dotnet test --no-build --verbosity normal

我必须在哪里添加这些命令?有没有办法传入一个数组,其中包含要按顺序运行的所有命令?还是我必须使用这个?

"pre-commit": "dotnet restore ./MyProject && dotnet build --no-restore ./MyProject && dotnet test --no-build --verbosity normal ./MyProject && lint-staged --relative"