理想情况下,我希望使用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/

    10-13 08:50