理想情况下,我希望使用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
另外,我建议花点时间仔细检查调用它们的钩子(Hook)脚本时,
git
将用于工作目录。如果CWD不是预期的,则使用.
可能会出现某些不良行为。参见this post。关于bash - Git提交前 Hook :无法运行 `dartfmt`(找不到命令)(Windows),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60468804/