理想情况下,我想拥有 dartfmt
在每次提交时格式化我的代码,我认为 git hooks
非常适合这个。到目前为止,我已经尝试了 this link 中的代码。 ,但没有成功,尽管它出现在多个其他网站上——也许它已经过时了。
最后,我认为在大多数情况下(在 .git/hooks/pre-commit
文件中)应该没有比这更复杂的了:
#!/bin/bash
dartfmt -w . # or maybe `flutter format .` for Flutter
我得到的错误是:
dartfmt -w .
: dartfmt: command not found
flutter format .
: find: ‘> bin [’: No such file or directory
如果直接放在终端中,这两个命令都可以工作。
最佳答案
制作 dartfmt
工作,尝试运行which dartfmt
手动获取可执行文件的路径,然后在脚本中调用时使用绝对路径。
如果 which
无法找到它,并假设您知道 dartfmt
所在目录的完整路径位于,尝试在脚本中将该目录添加到 PATH:
#!/bin/bash
PATH="/path/to/dart-sdk/bin:$PATH"
export PATH
另外,我建议花点时间仔细检查一下
git
当它调用那些钩子(Hook)脚本时将用于工作目录。使用 .
可能会出现一些不良行为如果 CWD 不是预期的。见 this post .
关于bash - Git 预提交 Hook : Unable to Run `dartfmt` (command not found) (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60468804/