v3 init push
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
// ESLint flat config codifying the style already in use across the workspace's
|
||||
// Vue projects: tabs, single quotes, `if(x)` with no space before the paren,
|
||||
// and Hungarian-ish prefixes on locals. Goal is catching real mistakes, not
|
||||
// importing an external style guide.
|
||||
import js from '@eslint/js';
|
||||
import vue from 'eslint-plugin-vue';
|
||||
import globals from 'globals';
|
||||
|
||||
export default [
|
||||
js.configs.recommended,
|
||||
...vue.configs['flat/essential'],
|
||||
{
|
||||
languageOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
globals: {
|
||||
...globals.browser
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
//Indentation: tabs everywhere. Left manual - the rule throws too
|
||||
//many false positives on wrapped Vue template attributes.
|
||||
'indent': 'off',
|
||||
'no-tabs': 'off',
|
||||
|
||||
'quotes': ['warn', 'single', {avoidEscape: true, allowTemplateLiterals: true}],
|
||||
|
||||
//Semicolons everywhere except the top-level `export default {...}`
|
||||
//in Vue SFCs, which ESLint cannot carve out - hence 'warn'.
|
||||
'semi': ['warn', 'always'],
|
||||
|
||||
//Loose and strict equality are both used on purpose (numeric
|
||||
//strings come back from the API) - do not force either.
|
||||
'eqeqeq': 'off',
|
||||
|
||||
'space-before-function-paren': ['warn', 'never'],
|
||||
'keyword-spacing': ['warn', {
|
||||
after: true,
|
||||
overrides: {
|
||||
if: {after: false},
|
||||
for: {after: false},
|
||||
while: {after: false},
|
||||
switch: {after: false},
|
||||
catch: {after: false}
|
||||
}
|
||||
}],
|
||||
'space-before-blocks': ['warn', 'always'],
|
||||
|
||||
//Object literals and destructuring use `{a, b}`, but imports use
|
||||
//`import { x } from 'y'` - one rule cannot express both.
|
||||
'object-curly-spacing': 'off',
|
||||
'array-bracket-spacing': ['warn', 'never'],
|
||||
|
||||
'no-unused-vars': ['warn', {argsIgnorePattern: '^_', ignoreRestSiblings: true}],
|
||||
'no-undef': 'error',
|
||||
'no-var': 'error',
|
||||
'prefer-const': 'off',
|
||||
|
||||
'vue/component-name-in-template-casing': 'off',
|
||||
'vue/multi-word-component-names': 'off',
|
||||
'vue/attribute-hyphenation': 'off',
|
||||
'vue/require-default-prop': 'off',
|
||||
'vue/no-v-html': 'error'
|
||||
}
|
||||
},
|
||||
{
|
||||
ignores: ['public/**', 'vendor/**', 'node_modules/**']
|
||||
}
|
||||
];
|
||||
Reference in New Issue
Block a user