// https://eslint.org/docs/user-guide/configuring
module.exports = {
? ? root: true,
? ? // 采用vue提供的解析器
? ? parser: 'vue-eslint-parser',
? ? // 同時(shí)存在的解析器
? ? parserOptions: {
? ? ? ? parser: 'babel-eslint',
? ? ? ? sourceType: 'module'
? ? },
? ? env: {
? ? ? ? browser: true
? ? },
? ? extends: ['airbnb-base', 'plugin:vue/recommended'],
? ? // required to lint *.vue files
? ? plugins: ['vue'],
? ? settings: {
? ? ? ? // 解析import的資源路徑,比如alias
? ? ? ? 'import/resolver': {
? ? ? ? ? ? webpack: {
? ? ? ? ? ? ? ? config: './build/webpack.config.js'
? ? ? ? ? ? }
? ? ? ? }
? ? },
? ? // 自定義校驗(yàn)規(guī)則
? ? rules: {
? ? ? ? // eslint-plugin-import插件提供的能力
? ? ? ? 'import/extensions': [
? ? ? ? ? ? 'error',
? ? ? ? ? ? 'always',
? ? ? ? ? ? {
? ? ? ? ? ? ? ? js: 'never',
? ? ? ? ? ? ? ? vue: 'never',
? ? ? ? ? ? ? ? css: 'never',
? ? ? ? ? ? ? ? less: 'never'
? ? ? ? ? ? }
? ? ? ? ],
? ? ? ? 'no-param-reassign': 'off',
? ? ? ? // 允許在開(kāi)發(fā)環(huán)境添加debugger
? ? ? ? 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
? ? ? ? indent: ['error', 4],
? ? ? ? 'linebreak-style': ['error', 'unix'],
? ? ? ? quotes: ['error', 'single'],
? ? ? ? semi: ['error', 'always'],
? ? ? ? 'comma-dangle': ['error', 'never'],
? ? ? ? 'global-require': 'off',
? ? ? ? 'no-trailing-spaces': 'off',
? ? ? ? 'eol-last': 'off',
? ? ? ? 'max-len': ['error', { code: 120 }],
? ? ? ? 'arrow-parens': ['error', 'as-needed'],
? ? ? ? 'vue/script-indent': ['error', 4],
? ? ? ? 'vue/html-indent': ['error', 4],
? ? ? ? 'vue/require-component-is': 'off',
? ? ? ? 'vue/html-closing-bracket-newline': [
? ? ? ? ? ? 'error',
? ? ? ? ? ? {
? ? ? ? ? ? ? ? singleline: 'never',
? ? ? ? ? ? ? ? multiline: 'never'
? ? ? ? ? ? }
? ? ? ? ],
? ? ? ? 'vue/max-attributes-per-line': [
? ? ? ? ? ? 'error',
? ? ? ? ? ? {
? ? ? ? ? ? ? ? singleline: 1,
? ? ? ? ? ? ? ? multiline: {
? ? ? ? ? ? ? ? ? ? max: 1,
? ? ? ? ? ? ? ? ? ? allowFirstLine: true
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ]
? ? }
};