Git预提交钩不运行

这是我的预先提交钩子:

#!/bin/sh exec node build.js 

当我将pre-commit更改为pre-commit.sh并运行它时,该代码正常工作,当我在terminal中运行exec node build.js时,它也能正确执行。 生成文件工作正常。

这里是build.js

 var fs = require("fs") var through2 = require('through2'); var markdownPdf = require("markdown-pdf") var removeMarkdown = require("remove-markdown") var resume = fs.createReadStream("README.md") var pdf = fs.createWriteStream("Resume - Desmond Weindorf.pdf") var txt = fs.createWriteStream("Resume - Desmond Weindorf.txt") var md = fs.createWriteStream("Resume - Desmond Weindorf.md") process.stdout.write('Building other file types...\n') // pdf resume.pipe(markdownPdf({ paperBorder: "1.4cm" })).pipe(pdf) // txt resume.pipe(through2(function(line, _, next) { this.push(removeMarkdown(line.toString()) + '\n'); next() })).pipe(txt) // md resume.pipe(md) 

我认为在写入新文件之前可能会提前结束(也可能是),但在这种情况下,terminal仍应显示初始写入输出。

这是我提交的输出(预先更改了pdf以testing它是否被新的更改覆盖):

 Desmonds-MacBook-Pro:resume desmond$ git commit -am "updated resume" [master 7faab35] updated resume 4 files changed, 36 insertions(+), 34 deletions(-) rewrite Resume - Desmond Weindorf.pdf (81%) 

我在这里做错了什么?