3步配置vue项目的Eslint

288 阅读1分钟

安装依赖

npm i eslint-import-resolver-alias babel-eslint babel-preset-airbnb @babel/eslint-parser eslint-plugin-import eslint@7.32.0  eslint-plugin-vue@9.9.0 eslint-config-airbnb-base@15.0.0 --save-dev

.eslintrc.js

module.exports = {
  root: true,
  env: {
    browser: true,
    node: true,
    es2020: true,
  },
  plugins: [
    'vue',
    'import',
  ],
  extends: [
    'plugin:vue/recommended',
    'airbnb-base',
  ],
  parserOptions: {
    parser: '@babel/eslint-parser',
    ecmaVersion: 2020,
    sourceType: 'module',
    babelOptions: {
      presets: [
        '@vue/cli-plugin-babel/preset',
        'airbnb',
      ],
    },
  },
  settings: {
    'import/resolver': {
      alias: {
        map: [['@', './src']],
        extensions: ['.js', '.vue'],
      },
    },
  },
  rules: {
    'no-param-reassign': [
      'error',
      {
        props: true,
        ignorePropertyModificationsFor: [
          'e',
          'row',
          'state', // for vuex
          'item', // for forEach
          'prev', // for reduce
        ],
      },
    ],
    'import/extensions': 'off',
    'import/no-cycle': 'off',
    'max-len': ['error', 150],
    'no-console': 'off',
    'global-require': 'off',
    'no-plusplus': 'off',
    'vue/no-v-html': 'off',
    'vue/multi-word-component-names': 'off',
    'no-useless-escape': 'off',
    'import/no-unresolved': 'off',
  },
};

package.json

"lint": "eslint --fix --ext  .js,.jsx,.ts,.tsx,.vue ./src",
"eslint": "eslint --ext  .js,.jsx,.ts,.tsx,.vue ./src"