git提交代码自动格式化

                                git提交代码时自动遵照eslint+prettier规范格式化代码


、环境准备

1、node  6.10+

2、npm 3.10+

 

、所需依赖包

1、@vue/cli-plugin-eslint    注入vue-cli-service lint 命令

2、@vue/eslint-config-prettier   设置一些不必要的或者是与prettier冲突的lint选项

3、eslint  eslint-loader  babel-eslint       Eslint的三个插件用于规范的约束

4、husky  用于git执行脚本

5、lint-staged  用于配置git脚本方法

 

、配置prettier 如果是新项目,在cli生成项目时选Yes即可(跳过第三条),如果是老项目,当时并没有选择这项功能那么请接着看:

1、安装依赖

npm install prettier -g

2、在根目录下新建 .prettierrc文件并输入以下内容(当然你也可以自行配置):

{
    "printWidth": 150,
    "singleQuote": true,
    "trailingComma": "none",
    "semi": true,
    "tabWidth": 4,
    "useTabs": false,
    "bracketSpacing": true,
    "jsxBracketSameLine": false,
    "arrowParens": "always",
    "proseWrap": "preserve",
    "overrides": [
        {
            "files": [
                "*.json",
                ".eslintrc",
                ".tslintrc",
                ".prettierrc",
                ".tern-project"
            ],
            "options": {
                "parser": "json",
                "tabWidth": 4
            }
        },
        {
            "files": "*.{css,sass,scss,less}",
            "options": {
                "parser": "css",
                "tabWidth": 4
            }
        },
        {
            "files": "*.ts",
            "options": {
                "parser": "typescript"
            }
        },
        {
            "files": "*.vue",
            "options": {
                "parser": "vue"
            }
        },
        {
            "files": "*.md",
            "options": {
                "parser": "markdown"
            }
        }
    ]
}

3在package.json的 (可有可无,下面会有更好的方法)

"scripts": {

    "format": "prettier --write \"**/*.{js,css,md}\"", //npm run format格式化命令

},

四、配置Eslint 如果是新项目,在cli生成项目时选Yes即可(跳过第四条,如果是老项目,当时并没有选择这项功能那么请接着看:

1、安装上述有关Eslint的依赖包

2、根目录下新建 .eslintrc.js文件或者 .eslintrc.josn文件都可以,本文采用.eslintrc.js。创建完成之后添加如下代码:

module.exports = {

    root: true,  //此项是用来告诉eslint找当前配置文件不能往父级查找

    env: {

        node: true   //指定脚本运行环境

    },

    extends: ['plugin:vue/essential', '@vue/prettier'],  //扩展配置规则 这里使用prettier

    rules: { //自定义规则,当规则与prettier冲突时以下面为准,规则还有很多,暂不列举

        'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',

        'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',

        'no-undef': 'off',//未定义变量

        'no-unused-vars':'off',//定义了但未使用的变量

        'no-redeclare':'off',//重复声明的变量

        'no-empty': 'off',//块语句中的内容不能为空

    },

    parserOptions: {

       //EsLint默认使用esprima做脚本解析,可以切换成babel-eslint解析等主流的解析方式

        parser: 'babel-eslint'

    }

};

3、在webpack.base.conf.js的rules里添加如下:

{

   test: /\.(js|vue)$/,

   loader: ['babel-loader','eslint-loader'],

  include:[resolve('src'),resolve('test'),resolve('node_modules/webpack-dev-server/client')]

},

4、在package.json的

"scripts": {

    "lint": "vue-cli-service lint", //创建npm run lint 命令

},

5、至此Eslint 已全部配置完成,可以npm start 控制台会提示各种error和warring的信息,根据信息你可以清楚的看到那些代码是不符合规范要求的,然后执行npm run lint会帮你修复部分代码,未能自动修复部分,请自行手动修复,或者移除该规则

 

五、配置git脚本

1、安装依赖

注:在安装lint-staged的时候会出现如下错误:

D:\ztemapgit\ZtMapUI>npm install lint-staged -D
npm ERR! Unexpected end of JSON input while parsing near '...ectories":{},"dist":{'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\DELL\AppData\Roaming\npm-cache\_logs\2018-10-10T08_00_39_403Z-debug.log

解决:执行指令如下:

npm cache clean --force

 

2、配置 package.json的

"scripts": {

    "precommit": "lint-staged"

  },
"lint-staged": {

    "linters": {

      "src/**/*.js": [  //路径规则(译:src下面的所有js文件,可自行配置)

        "vue-cli-service lint",

        "git add"

      ],

      "src/**/*.vue": [

      "vue-cli-service lint",

      "git add"

      ]

    }

  },//git提交代码的时候就会根据vue-cli-service lint指令进行修改代码

 

注:除了安装依赖的时候会因为环境或者网络问题出现错误外,其他的按照步骤进行,应该会很顺利

推荐:node版本跟新太快,可能经常会在老项目与新项目中不停的切换node版本,nvm工具可以实现多版本的node切换,详见:https://blog.csdn.net/ttxxsir/article/details/82733913

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值