标签: husky

sh:哈士奇:找不到命令

我已经用 husky 设置了一个节点项目,但是当我的同事尝试npm install在他的 Mac 上运行时,他收到以下错误:

noa-be@1.0.0 prepare
husky install

sh: husky: command not found
npm ERR! code 127
npm ERR! path /Users/X/Desktop/Workspace/project
npm ERR! command failed
npm ERR! command sh -c husky install

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/X/.npm/_logs/2021-04-12T13_07_25_842Z-debug.log
Run Code Online (Sandbox Code Playgroud)

这些是相关的 package.json 部分:

noa-be@1.0.0 prepare
husky install

sh: husky: command not found
npm ERR! code 127
npm ERR! path /Users/X/Desktop/Workspace/project
npm ERR! command failed
npm ERR! command sh -c …
Run Code Online (Sandbox Code Playgroud)

git node.js npm husky git-husky

80
推荐指数
6
解决办法
14万
查看次数

VSCODE 和 GitHub Desktop 预提交挂钩:npx:找不到命令

我正在开始一个新的存储库,认为我应该使用最新的 Huksy v6,它是使用其设置指南从 LintStages 安装的:

npx mrm lint-staged

// package.json updated with:
"husky": ">=6",
"lint-staged": ">=10",
Run Code Online (Sandbox Code Playgroud)

这将添加必要的包并添加 husky 文件,包括预提交文件:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx lint-staged
Run Code Online (Sandbox Code Playgroud)

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

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

我已经安装了 npx:

npx -v
// 6.14.10
Run Code Online (Sandbox Code Playgroud)

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

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

我可以做些什么来让 VSCode 和 GitHub Desktop 等程序可以运行吗?

visual-studio-code github-desktop husky lint-staged

52
推荐指数
5
解决办法
5万
查看次数

提交新代码时如何修复错误“未找到 husky-run”?

在提交使用 Husky 的项目时,我收到一个错误消息 not found husky-run

我检查了package.json它,它有 husky 作为依赖项,我可以在package.json. 所以我不知道该怎么做才能解决这个问题。此外,我团队中的其他成员可以承诺并为他们工作。

我也尝试过rm -rf node_modules && npm install,然后再次提交,但仍然出现相同的错误。

其他人有关于如何解决这个问题的想法吗?

git husky

23
推荐指数
6
解决办法
1万
查看次数

哈士奇的 vsCode 问题

我在我的项目中配置了哈士奇。它正在使用“lint-staged”运行预提交挂钩,以便在每次提交之前使用“prettier”格式化代码。当我使用终端调用git commit.

但是,如果我使用 VS Code 源代码控制面板来提交文件,它只会提交而不运行预提交挂钩。我正在使用 Windows 10。预提交文件:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx "lint-staged"
Run Code Online (Sandbox Code Playgroud)

package.json 表示“lint-staged”

"lint-staged":{
    "*.{js,json,css,md}": [
        "prettier --write"
    ]
}
Run Code Online (Sandbox Code Playgroud)

vscode 源码控制面板

vscode 源码控制面板

如何解决这个问题,以便每次调用 git commit 时调用预提交挂钩,尽管它来自 vscode?

git visual-studio-code husky prettier git-husky

22
推荐指数
1
解决办法
3619
查看次数

哈士奇的工作原理是什么?

https://github.com/typicode/husky能够自动运行 git hooks,以便在存储库中的团队之间共享它们。

这怎么可能行得通呢?由于挂钩需要位于.git/hooks未添加到存储库中的位置。

它是否包装git命令和拦截命令,并在命令发生时运行挂钩?

我想为 python 和 php 项目重现此行为,而不需要依赖 npm 或 node。

git githooks husky

18
推荐指数
2
解决办法
4962
查看次数

Husky 4.x+ 不适用于 Visual Studio Git

Husky用 4.0.0 改变了它的路径处理。在此更改后,它会在从 Visual Studio提交时引发以下错误:

husky > pre-commit (node v12.12.0)/c/path/to/repo/node_modules/.bin/lint-staged: 
line 5: cygpath: command not foundinternal/modules/cjs/loader.js:797 throw err;

^Error: Cannot find module 'C:\lint-staged\bin\lint-staged.js' 
 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15) 
 at Function.Module._load (internal/modules/cjs/loader.js:687:27)
 at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10) 
 at internal/main /run_main_module.js:17:11 { code: 'MODULE_NOT_FOUND', requireStack: []}

husky > pre-commit hook failed 
(add --no-verify to bypass)
Run Code Online (Sandbox Code Playgroud)

但是,从 CLI提交时,它按预期工作。鉴于错误消息'C:\lint-staged\bin\lint-staged.js'作为文件路径,我假设 Visual Studio 以不同方式处理路径。

我试图找到一种方法来在 Visual Studio 中完成这项工作。我在企业环境中,所以我希望有一种方法可以在存储库中包含此配置(而不是需要手动本地设置)。

我的 package.json 中包含了 husky 配置

...
"husky":{
    "hooks":{ "pre-commit": "lint-staged"}
},
"lint-staged":{
    "!(*.min.*)js": "eslint …
Run Code Online (Sandbox Code Playgroud)

git husky visual-studio-2019

14
推荐指数
1
解决办法
8500
查看次数

husky > 预提交钩子失败(添加 --no-verify 绕过)

突然,我收到了“沙哑> pre-commit钩子失败(添加--no-验证旁路) ”错误消息时,我给了git commit

在此处输入图片说明

我不知道我做错了什么。我也试过git clean命令。

git pre-commit-hook husky angular git-husky

14
推荐指数
4
解决办法
2万
查看次数

赫斯基 5 .huskey gitignore

10天前,Husky 5发布 https://dev.to/typicode/what-s-new-in-husky-5-32g5

迁移到它之后(https://typicode.github.io/husky/#/

我注意到.husky项目中有一个新目录。

默认情况下它包含以下内容:

.huskey
   -> .gitignore
   -> /_
Run Code Online (Sandbox Code Playgroud)

.gitignore文件只是忽略了_目录

_
Run Code Online (Sandbox Code Playgroud)

目录里面/_有一个huskey.sh文件显然应该被忽略。

在文档中 - 您可以通过以下方式添加钩子:

npx husky add .husky/pre-commit "npm test"
Run Code Online (Sandbox Code Playgroud)

pre-commit这将在目录中创建一个文件.husky

我应该将该目录与pre-commit文件一起提交吗?不确定这一点,并且在文档中找不到这一点。

javascript git gitignore node.js husky

14
推荐指数
1
解决办法
1万
查看次数

如何解决这个空的 git commit 警告?

将我的代码推送到远程分支并创建 PR 后。我想对我的代码进行更多更改,然后再次提交到远程分支

首先,我开始执行以下步骤:

git add .
git commit -m "Remove semicolons, change to multi line returns"`
Run Code Online (Sandbox Code Playgroud)

但提交后就出现了: 在此输入图像描述

我检查了状态并取消暂存所有添加的文件

git status
git restore --stage .
Run Code Online (Sandbox Code Playgroud)

-> 然后我再次添加并提交,错误仍然存​​在。

之后,我撤消提交并拉动分支以重新开始

git reset HEAD^
git pull
Run Code Online (Sandbox Code Playgroud)

当我完成对代码的更改后,我跑去git diff看我所做的更改。最后,我运行了git add .& git commit -m "Recommit message",但不知何故错误又回来了


谁能帮助我了解到底发生了什么以及我该如何解决它?

如果我们无法修复它,有什么办法可以使代码恢复正常吗?

谢谢你!

git husky lint-staged

14
推荐指数
1
解决办法
2万
查看次数

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

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

安装了这些:

"husky": "^5.1.3",
"lint-staged": "^10.5.4",
Run Code Online (Sandbox Code Playgroud)

在 package.json 我有:

"scripts": {
    "build": "gatsby build",
    "develop": "gatsby develop",
    "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"",
    "start": "npm run develop",
    "serve": "gatsby serve",
    "clean": "gatsby clean",
    "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1",
    "lint": "eslint --ext .js,.jsx,.ts,.tsx src --color",
    "isready": "npm run format && npm run lint && npm run build"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged",
      "pre-push": "npm test",
    }
  },
  "lint-staged": {
    "./src/*.{js,jsx,ts,tsx}": [
      "npm run …
Run Code Online (Sandbox Code Playgroud)

pre-commit pre-commit-hook eslint husky lint-staged

13
推荐指数
2
解决办法
9190
查看次数