我正在使用 nvm
与 --no-use
标记为这导致我的终端启动速度非常慢🐌。这意味着我总是需要运行 nvm use <NODE_VERSION>
在新的终端选项卡上以便能够使用 node
或 npm
.
我有一个项目,其中使用 ghooks
配置了一些 Git Hooks ,因此每次我移动到不同的分支或提交某些内容时,我都会在 WebStorm 和 SourceTree 中遇到不同类型的错误,所有错误都指向 node
找不到。这些是其中的一些:
SourceTree checkout
:
git -c diff.mnemonicprefix=false -c core.quotepath=false -c
credential.helper=sourcetree checkout BRANCH
Switched to branch 'BRANCH'
M ...
M ...
...
env: node: No such file or directory
Completed with errors, see above
WebStorm commit
:
Commit failed with error
0 files committed, 3 files failed to commit: COMMIT_MESSAGE env: node: No such file or directory
在 WebStorm 中,我认为手动设置 node
要使用的版本(在 Preferences > Languages & Frameworks > Node.js and NPM > Node interpreter
下)会解决问题,但事实并非如此。
我正在使用 WebStorm 2016.1.3, Build #WS-145.1616
.
删除 --no-use
flag 当然会修复它,但这不是一个选项,因为终端在启动时变得非常慢。还有其他方法可以解决这个问题吗? 🙏
最佳答案
考虑使用 husky
(也可能使用 lint-staged
)来更好地控制 Git Hook 的执行方式。基本上,您可以在项目的 package.json
中将所有 Hook 很好地定义为 NPM 命令。由于这一切都进入 Git Hook ,它们将在最后使用 GUI 客户端(如 IDE 或 SourceTree)执行。
这个问题似乎与系统对终端和 GUI 应用程序(例如 WebStorm 或 SourceTree)使用不同的路径有关。使用 husky
,您可以定义一个 ~/.huskyrc
并记下要使用的 Node 版本,或者预先为它提供源代码 nvm
。我也使用 nvm
,从他们的自述文件中获取的配置按原样工作:
# ~/.huskyrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
注意。无论如何,我与 husky
无关,只是喜欢它的工作方式。
关于node.js - 在 WebStorm 和 SourceTree 中使用 NVM 时 Git Hooks 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637879/