首页 > 解决方案 > 如何使 intellij 与使用 hashbang 的 git hooks 一起工作?

问题描述

我有许多使用node. 为了做到这一点,我为每个看起来像这样的 hashbang 添加了一个 hashbang:

#!/usr/bin/env node

这在命令行上工作得非常好,但是当这些 git 挂钩之一通过在 IntelliJ 中执行的某些操作触发时(例如,当您从 IntelliJ 中切换分支时的结帐后挂钩)我收到以下错误:

/usr/bin/env: ‘node’: No such file or directory

我能做些什么来阻止 IntelliJ 中发生这些错误,因为它们可能会非常具有破坏性并使我的 git 挂钩无效?我试图寻找 git 插件的配置选项,但这似乎没有任何意义。

标签: gitintellij-idea

解决方案


这似乎是由于PATHIntelliJ 中的环境变量与终端上的不同,并且node根本无法访问它。知道这一点,几乎没有办法解决它。

  • 从命令行运行 IntelliJ;我发现这并不令人满意,因为我无疑会忘记并从仪表板启动它,直到钩子失败才注意到。
  • 使用桌面文件将目录添加node到 PATH env(这可能是 gnome 特定的);这有点令人费解,桌面文件无论如何都会被更新覆盖,所以我放弃了。
  • 从将在 PATH 上的目录中提供指向节点的符号链接;例如,我创建了一个符号链接/usr/bin/node

可能还有其他选择,但希望这可以帮助其他遇到类似问题的人。我遇到了这个问题,因为我nvm用来管理节点版本,所以在执行命令node之前不在路径上。nvm use <version>我在 中设置了默认节点版本.zshrc,但当然,这不适用于 IntelliJ。


推荐阅读