Bump. I’m still looking for a working ESLint 9 configuration as a base for Meteor 3 that also takes care of Meteor’s special import resolver, so imports like meteor/meteor
are correctly resolved. I got it working with ESLint 8 now, but not for 9.
Here’s my config for ESLint 8, in case anybody is interested:
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
env: {
node: true,
browser: true
},
plugins: ['@typescript-eslint'],
extends: [
'eslint:recommended',
'standard-react',
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/stylistic'
],
settings: {
'import/resolver': {
meteor: {
extensions: ['.js', '.jsx', '.ts', '.tsx']
},
moduleDirectory: ['node_modules']
}
},
rules: {
'arrow-spacing': ['error', { before: true, after: true }],
'comma-dangle': ['error', 'never'],
'comma-style': ['error', 'last'],
'eol-last': ['error', 'always'],
eqeqeq: ['error', 'always'],
indent: ['error', 2, { SwitchCase: 1, ignoredNodes: ['ConditionalExpression *'] }],
'jsx-quotes': ['error', 'prefer-double'],
'key-spacing': ['error', { beforeColon: false }],
'keyword-spacing': ['error'],
'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],
'no-multi-spaces': 'error',
'no-return-assign': 0,
'no-trailing-spaces': 'error',
'object-curly-spacing': ['error', 'always'],
quotes: ['error', 'single'],
'quote-props': ['error', 'as-needed'],
'react/jsx-tag-spacing': ['error', {
closingSlash: 'never',
beforeSelfClosing: 'always',
afterOpening: 'never',
beforeClosing: 'allow'
}],
'react/prop-types': 0,
'react/react-in-jsx-scope': 0,
semi: [2, 'always'],
'semi-spacing': ['error', { before: false, after: true }],
'space-before-function-paren': 0,
'space-in-parens': ['error', 'never'],
'space-infix-ops': ['error', { int32Hint: false }]
}
};