我正在开始一个新的存储库,认为我应该使用最新的 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/