Javascript 在node.js中编写git post提交文件

Javascript 在node.js中编写git post提交文件,javascript,node.js,git,vim,Javascript,Node.js,Git,Vim,我试图在node.js中编写git post commit文件,但遇到了问题 该文件似乎必须在.git/hooks目录中命名为post-commit。由于该文件不能有扩展名,所以我的vim编辑器不会持久地为其提供javascript语法高亮显示,因此我的代码片段都不起作用,并且还存在其他各种挑战 我能做什么?告诉Git运行Primest.js或告诉VIM考虑这个文件JavaScript,但这不持久。 想法?您可以让提交后文件运行一个单独的JavaScript文件 提交后: #!/bin/bash

我试图在node.js中编写git post commit文件,但遇到了问题

该文件似乎必须在
.git/hooks
目录中命名为
post-commit
。由于该文件不能有扩展名,所以我的vim编辑器不会持久地为其提供javascript语法高亮显示,因此我的代码片段都不起作用,并且还存在其他各种挑战

我能做什么?告诉Git运行Primest.js或告诉VIM考虑这个文件JavaScript,但这不持久。


想法?

您可以让提交后文件运行一个单独的JavaScript文件

提交后:

#!/bin/bash/
node yourJavascriptFile.js

在vim中使用
:set filetype=javascript
命令来设置文件类型。 您可能还希望在vim中启用modeline,并在文件顶部的注释中包含上述命令,如下所示:

/* vim: set filetype=javascript : */
your_Javascript_code_goes_here()
要在vim中启用modeline,请将其添加到~/.vimrc文件中:

set modelines=2
set modeline

这将允许在文件的前两行中搜索vim modelines。

对于单个命令来说有点多,但一旦有多个构建步骤,就很有用。这不起作用。似乎找不到那个文件。我认为它从顶级目录执行提交后bash文件,而不是从.git/hook中执行。将绝对路径添加到
节点
,脚本是最佳做法。@ppovoski,绝对路径是最糟糕的做法。它是一种反模式,几乎总是无处不在。特别是对于用户脚本文件。在这种特殊情况下,最好使用
node$(dirname${BASH_SOURCE[0]})/yourJavascriptFile.js
在hooks目录中查找脚本。
节点
二进制文件必须在路径中。另外值得注意的是,shebang字符串有输入错误。
#之后不应有尾随斜杠/bin/bash