问题标签 [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.
javascript - 尝试使用预提交挂钩删除未使用的导入,但正在使用的导入正在被删除
我刚安装eslint-plugin-unused-imports
。当我提交时,它会完成所有的 linting 工作并删除一堆导入,即使其中许多导入正在文件中使用。
可能值得注意,也可能不值得注意,这个项目有一堆遗留的 Backbone 和更新的 React 组件,其中一些 Backbone 视图呈现 React 组件。此外,这是一个 JS 而非 TS 项目。
eslint-plugin-unused-imports 问题状态:
如果问题是某些东西被错误地标记为未使用的导入并因此被删除。这是导入包(
@typescript-eslint/eslint-plugin
用于 TS 或eslint
JS)及其no-unused-vars
规则的问题。除了在上游进行修复时更新之外,我对此无能为力。如果
no-unused-vars
上游添加了应该自动修复的新规则,请标记您的问题规则添加。
但我不确定如何解决这个问题。
下面是我的 linting 设置:
javascript - lint-staged 为不同的文件夹运行不同的命令
我的项目文件夹设置了两个子目录,frontend
并backend
分别存放代码。
因此在根文件夹中我有:
在根的 package.json 中,我有:
但是,如果我这样做git add
并且git commit
在根级别上,它会一直说No staged files match any configured task.
我已经查看了两个子 package.json 并且它们都有效。我不确定如何配置 lint-staged 来过滤文件。
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 没有找到这个的还有其他原因吗?
eslint - 如何使用 Husky 版本 6 进行 lint-staged 工作
我尝试使用赫斯基的pre-commit
和lint-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?
yarnpkg - 如何让 `npx mrm lint-staged` 工作
我知道lint-staged 没有在预提交时运行,但没有一个解决方案对我有帮助。
我跑了npx mrm lint-staged
,但预提交钩子没有运行。我去检查.git/hooks,husky这里没有创建任何钩子。我已经尝试卸载并重新安装 husky。不确定这是否重要,但我使用 yarn 作为我的包管理器。也不确定它是否重要,但我的 npx 使用的是版本 6 而不是版本 10(我无法升级它,这是我在另一个 stackoverflow 问题中提出的问题)。
lint - 如何为 lint-staged 设置多种模式?
例如,我在 .rb 和 .js 文件上进行了匹配。
例如**/*.{js,rb}
并且还想匹配Gemfile
,Rakefile
例如。
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 等程序运行吗?
prettier - npx mrm lint-staged 错误,“未找到预设“默认”。”
问题示例:
无法运行此命令,我不知道为什么!
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 文件并添加多个带有一些选项卡的空行时,我得到了这个输出
- 为什么对带有多个选项卡的空行显示“无法识别的命令或参数”?
- 为什么显示帮助部分?
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"