visual-studio-code - VSCODE 和 GitHub 桌面预提交钩子(Hook) : npx: command not found

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

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

npx mrm lint-staged

// package.json updated with:
"husky": ">=6",
"lint-staged": ">=10",
这会添加必要的包并添加 husky 文件,包括预提交文件:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

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

npx: command not found. husky - pre-commit hook exited with code 127 (error)


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

ERR! EEXIST: file already exists, symlink '../lib/node_modules/npx/index.js' -> '/Users/plucks/.nvm/versions/node/v14.15.4/bin/npx' npm ERR! File exists: /Users/plucks/.nvm/versions/node/v14.15.4/bin/npx npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly.


有什么我可以做的事情,像 VSCode 和 GitHub Desktop 这样的程序可以运行吗?

最佳答案

根据 this suggestion , 将以下内容添加到您的 pre-commit文件应该修复它:

export NVM_DIR="$HOME/.nvm/nvm.sh"
. "$(dirname $NVM_DIR)/nvm.sh"

export NVM_DIR="$HOME/.nvm"
a=$(nvm ls | grep 'node')
b=${a#*(-> }
v=${b%%[)| ]*}

export PATH="$NVM_DIR/versions/node/$v/bin:$PATH"
所以完整的文件看起来像这样:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

export NVM_DIR="$HOME/.nvm/nvm.sh"
. "$(dirname $NVM_DIR)/nvm.sh"

export NVM_DIR="$HOME/.nvm"
a=$(nvm ls | grep 'node')
b=${a#*(-> }
v=${b%%[)| ]*}

export PATH="$NVM_DIR/versions/node/$v/bin:$PATH"

npm run test

关于visual-studio-code - VSCODE 和 GitHub 桌面预提交钩子(Hook) : npx: command not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67115897/

相关文章:

github-desktop - 为什么 GitHub 桌面呈现的历史好像只来 self 们团队中的一个?

npm - 如何使用 devinstall 和 devuninstall 脚本?

visual-studio-code - 如何在 vscode 中关闭半开(斜体)文件

angularjs - 引用 angular 1.5 时无效的 'reference' 指令语法错误

git - 如何更改vscode推送代码到master分支到主分支?

git - 从不受信任的来源打开或克隆 Git 存储库是否危险

git - 存储库中已存在锁定文件,阻止此操作完成

git - 当我根据提交消息提交时,如何更改 package.json 版本?

c# - 如何在 Visual Studio Code 中的 C# 函数声明括号中设置自动前导/尾随空格?