0
我想在Git中設置自定義過濾器,以便js文件自動被美化。我試着創建一個預先提交的鉤子,運行jshint和js-beautify。這是我創建的腳本:使用git創建自定義過濾器來美化js
#!/bin/sh
files=$(git diff --cached --name-only --diff-filter=ACM | grep ".js$")
if [ "$files" = "" ]; then
exit 0
fi
pass=true
echo "Javascript validation with JSHint:"
for file in ${files}; do
result=$(jshint ${file} | egrep "error")
if [ "$result" != "" ]; then
echo "JSHint error: ${file}"
echo "$(jshint ${file})"
pass=false
else
echo "JSHint ok: ${file}"
beautify=$(js-beautify ${file} -r -P --config .beautifyrc)
fi
done
echo "Validation complete"
if ! $pass; then
echo "Aborting commit."
exit 1
else
echo "Commit ok."
exit 0
fi
這樣做的方式,文件上犯下,但JS-美化所做的更改不包括在提交和文件的更改正在等待(所以我需要作出第二次提交)。我一直在閱讀有關設置過濾器的信息,但我不知道如何運行自定義的shell腳本。我很喜歡設置這個過濾器:
*.js js-beautify ${file} -r -P --config .beautifyrc
非常感謝,最好的問候。
要添加頂部,請使用像Grunt或Gulp這樣的任務運行器,並在提交之前手動運行您的美化程序。我也建議調查ESLint。 – zamber
感謝AlBlue,它似乎是一種有效的解決方案。 –
zamber,這個解決方案是自動的,一旦配置完成,我的團隊中沒有人需要運行美化。我會這樣做,但我希望解決方案更簡單。 –