vue2+webpack+vue-router项目搭建--提升篇(添加eslint代码巡检)

3 篇文章 0 订阅
1 篇文章 0 订阅

提升篇-添加eslint代码巡检


江湖梦,梦江湖
每一块混迹于码农界的‘水泥’都是一个侠客,快意恩仇、恣意纵横、笑傲江湖,能上九天揽月、能下五洋捉鳖…

添加代码巡检(即代码校验,eslint、jslint、jshint等)有两种方式,一种是写shell脚本,一种是安装pre-commit库。
本项目中应用的是后者。

安装流程(本次使用的是eslint校验)

  1. 全局安装eslint,并且安装其他巡检包
    npm i eslint -g
    npm i eslint eslint-plugin-html babel-eslint --save-dev
  2. eslint初始化,按项目或是编写风格回答相关问题,以完成初始化
    eslint --init
  3. 编辑.eslintrc.js文件,定义相关校验规则
  4. 之后选择巡检方式
安装pre-commit库来添加代码巡检

4.1. 安装pre-commit
npm i pre-commit --save-dev
4.2. 在package.json文件中的scripts下增加相关命令,如:
"lint": "eslint --ext .vue,.js ./src",
"fix": "eslint --fix --ext .vue,.js ./src",
4.3 在package.json文件中添加pre-commit参数,数组值为scripts中要执行的命令。
"pre-commit": ["precommit-msg", "lint"],

通过shell脚本的方式来添加代码巡检

4.1 在vue2-webpack/.git/hooks下新建pre-commit钩子。
4.2 编辑pre-commit文件,添加shell脚本,如

#!/bin/sh

files=$(git diff --cached --name-only --diff-filter=ACM | grep "\.js$")

if [ "$files" = "" ]; then
    exit 0
fi

pass=true

echo "pre-commit checks..."

for file in ${files}; do
    flag=$file;
    while read line
    do
        flag=`echo "$flag" | grep -v $line`
        flag=$flag
    done < '.eslintignore'

    if [ "$flag" != "" ];then
        echo "$flag"
        result=$(eslint ${file})
        if [ "$result" != "" ]; then
            echo "\033[31mESLint Failed: ${file}\033[0m"
            echo "$result"
            pass=false
        else
            echo "\033[32mESLint OK: ${file}\033[0m"
        fi
    fi

done

echo "\nJavaScript validation complete\n"
if ! $pass; then
    echo "\033[41mCHECKED FAILED:\033[0m Your commit contains files that should pass ESLint but do not. Please fix the ESLint errors and try again.\n"
    exit 1
else
    echo "\033[42mCHECKED SUCCEEDED\033[0m\n"
    exit 0

fi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值