module.exports = { root: true, env: { node: true, }, extends: ['plugin:vue/recommended', '@vue/airbnb', 'prettier'], plugins: ['prettier'], rules: { 'prettier/prettier': ['error'], // This conflicts with prettier so best to disable this rule. // https://github.com/prettier/eslint-plugin-prettier/issues/289 // https://github.com/prettier/prettier/issues/5501 // https://github.com/prettier/prettier/pull/6644 'vue/max-attributes-per-line': ['off'], // Conforming to this rule requires changes to existing components that might // effect component behavior. 'vue/require-default-prop': ['off'], // Resolves a conflict with pretier for elements like 'vue/html-self-closing': ['error', { html: { void: 'always' } }], 'vue/singleline-html-element-content-newline': 0, // This rule is just for consistency, default is PascalCase but existing code uses kebab 'vue/name-property-casing': ['error', 'kebab-case'], 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-param-reassign': [ 'error', { props: false, }, ], 'no-underscore-dangle': 0, 'import/prefer-default-export': 0, 'no-unused-vars': [ 2, { ignoreRestSiblings: true, argsIgnorePattern: '^__', varsIgnorePattern: '^__', }, ], }, parserOptions: { parser: 'babel-eslint', }, overrides: [ { files: ['tests/unit/**/*.js'], env: { jest: true, }, }, { files: ['**/*.stories.{j,t}s?(x)'], rules: { 'import/no-extraneous-dependencies': 'off', }, }, ], };