gpt4 book ai didi

javascript - 使用 git 创建美化 js 的自定义过滤器

转载 作者:行者123 更新时间:2023-11-28 00:07:05 25 4
gpt4 key购买 nike

我想在Git中设置自定义过滤器,以便自动美化js文件。我尝试创建一个运行 jshint 和 js-beautify 的预提交 Hook 。这是我创建的脚本:

#!/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-beautify 所做的更改不包含在提交中,并且文件更改处于待处理状态(因此我需要进行第二次提交)。我一直在阅读有关设置过滤器的内容,但我不知道如何运行自定义 shell 脚本。我想设置这个过滤器:

*.js js-beautify ${file} -r -P --config .beautifyrc

非常感谢,最诚挚的问候。

最佳答案

您需要对更改的文件运行 git add 以便记录它们。您修改的文件仅在工作副本中发生更改;它们在索引上不会更改,这是 Git 在创建提交时使用的索引。

请注意,此方法会因部分 git 添加而失败(您正在暂存要提交的文件的一部分而不是整个文件)。

关于javascript - 使用 git 创建美化 js 的自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com