首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建使用git美化js的自定义筛选器

创建使用git美化js的自定义筛选器
EN

Stack Overflow用户
提问于 2015-07-06 08:30:31
回答 1查看 218关注 0票数 1

我想在Git中设置一个自定义过滤器,这样js文件就会自动被美化。我试着创建一个预提交钩子,运行jshint和js-美化。这是我创建的脚本:

代码语言:javascript
复制
#!/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脚本。我希望设置这个过滤器:

代码语言:javascript
复制
*.js js-beautify ${file} -r -P --config .beautifyrc

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 08:47:14

您需要对您更改的文件运行git add,以便将它们记录下来。您修改的文件仅在工作副本中更改;它们在索引上没有更改,这是Git在创建commit时使用的。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31241092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档