zoukankan      html  css  js  c++  java
  • eslint+prettier完成代码格式化以及半自动化整理

    1.配置eslint

    npm install --save-dev eslint eslint-plugin-vue@next

    2.package.json添加下面的配置

    "eslintConfig": {
        "root": true,
        "env": {
          "node": true
        },
        "extends": [
          "plugin:vue/vue3-essential",
          "eslint:recommended"
        ],
        "parserOptions": {
          "parser": "babel-eslint"
        },
        "rules": {}
      },

     

    3.添加.eslintrc.js

    module.exports = {
      extends: ['plugin:vue/strongly-recommended', 'plugin:prettier/recommended'],
      rules: {
        'prettier/prettier': 'error',
      },
    };
    

     

    4.添加prettier.config

    module.exports = {
      printWidth: 80, // 每行代码长度(默认80)
      tabWidth: 2, // 每个tab相当于多少个空格(默认2)
      useTabs: false, // 是否使用tab进行缩进(默认false)
      singleQuote: true, // 使用单引号(默认false)
      semi: true, // 声明结尾使用分号(默认true)
      trailingComma: 'all', // 多行使用拖尾逗号(默认none)
      bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true)
      jsxBracketSameLine: false, // 多行JSX中的>放置在最后一行的结尾,而不是另起一行(默认false)
      arrowParens: 'avoid', // 只有一个参数的箭头函数的参数是否带圆括号(默认avoid)
    };

    5.package.json配置commit提交前的钩子

    "husky": {
        "hooks": {
          "pre-commit": "lint-staged",
          "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true"
        }
      },
      "lint-staged": {
        "*.js": [
          "prettier --write",
          "vue-cli-service lint",
          "git add"
        ],
        "*.vue": [
          "prettier --write",
          "vue-cli-service lint",
          "git add"
        ]
      },

    6.  pageckage.json格式化自动命令配置

    "format": "prettier --write \"src/**/*.js\" \"src/**/*.vue\" \"*json\" \"*.config.js\" \"*.eslintrc.js\""

    终端执行命令

    npm run format
    //or
    yarn format

    7.package.json 配置lint检查

    "lint": "vue-cli-service lint",

    终端执行命令

    yarn lint
    //or
    npm run lint

    8.开发环境中开启lint

    第一种方式基于vue-cli3.0创建的需要在vue.config.js中

    lintOnSave: 'error',

    第二种方式在webpack中配置:

    config/index.js中添加配置

    dev: {
      useEslint: true, 
    }

    build/webpack.base.config.js

    const createLintingRule = () => ({
     test: /\.(js|vue)$/,
     loader: 'eslint-loader',
     enforce: 'pre',
     include: [resolve('src'), resolve('test')],
     options: {
      formatter: require('eslint-friendly-formatter'),
      emitWarning: !config.dev.showEslintErrorsInOverlay,
      fix: true,
     }
    })

     

    参考文档

    vue+eslint详解

    prettier

    eslint配置

    实例代码仓库

    vue.config.js配置参数

    优秀的人一直在路上,优秀的你一直在尝试写新bug
  • 相关阅读:
    spring mvc处理json
    Unable to read TLD "META-INF/c.tld"错误
    linux设置tomcat开机自动启动
    linux tomcat自启动设置
    向PE文件植入后门代码技术讨论
    对自助提卡系统EDLM的一次代码审计
    XE下显示托盘图标(TrayIcon)
    delphi 查看编译版本
    Context Menus
    API Monitor---------------Using API Monitor to crack copy protected software
  • 原文地址:https://www.cnblogs.com/starryyang/p/13897641.html
Copyright © 2011-2022 走看看