| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- module.exports = {
- root: true,
- env: {
- browser: true,
- commonjs: true,
- es6: true,
- node: true,
- },
- extends: [
- 'eslint:recommended',
- 'plugin:@typescript-eslint/eslint-recommended',
- ],
- globals: {
- Atomics: 'readonly',
- SharedArrayBuffer: 'readonly',
- },
- parser: '@typescript-eslint/parser',
- parserOptions: {
- // ES6 syntax
- ecmaVersion: 6,
- sourceType: 'module',
- ecmaFeatures: {
- modules: true,
- },
- // 'project': './tsconfig.json'
- },
- plugins: [
- '@typescript-eslint',
- // 'jsdoc',
- // 'prettier',
- ],
- rules: {
- 'quote-props': ['error', 'as-needed'],
- // 'prettier/prettier': 'warn',
- 'keyword-spacing': ['warn', {
- before: true,
- after: true,
- }],
- camelcase: ['warn', {
- properties: 'always',
- }],
- indent: ['error', 4, { SwitchCase: 1, CallExpression: { arguments: 'off' }, ArrayExpression: 'first' }],
- // 'no-else-return': 'error',
- 'object-curly-spacing': ['error', 'always'],
- 'array-bracket-spacing': ['error', 'never'],
- 'semi-spacing': ['error', {
- before: false,
- after: true,
- }],
- 'rest-spread-spacing': ['error', 'never'],
- 'space-in-parens': ['error', 'never'],
- curly: 'error',
- semi: ['error', 'always'],
- 'no-multi-spaces': ['error', { ignoreEOLComments: true }],
- 'no-whitespace-before-property': 'error',
- 'no-tabs': ['error', { allowIndentationTabs: true }],
- 'no-unused-vars': ['warn', 'all'],
- 'no-empty': ['error', { allowEmptyCatch: true }],
- 'consistent-return': ['warn', { treatUndefinedAsUnspecified: true }],
- eqeqeq: ['warn', 'always'],
- // 'line-comment-position': ['warn', { 'position': 'above' }],
- 'max-len': ['warn', {
- code: 180,
- }],
- 'no-undef': 0,
- 'no-constant-condition': ['warn', {
- checkLoops: false,
- }],
- 'no-inner-declarations': ['warn'],
- 'no-case-declarations': ['warn'],
- // 'jsdoc/check-alignment': 1,
- // 'jsdoc/check-param-names': 1,
- // 'jsdoc/check-tag-names': 1,
- // 'jsdoc/check-types': 1,
- // 'jsdoc/implements-on-classes': 1,
- // 'jsdoc/newline-after-description': 1,
- // 'jsdoc/no-undefined-types': 1,
- // 'jsdoc/require-jsdoc': 1,
- // 'jsdoc/require-param': 1,
- // 'jsdoc/require-param-description': 1,
- // 'jsdoc/require-param-name': 1,
- // 'jsdoc/require-param-type': 1,
- // 'jsdoc/require-returns': 1,
- // 'jsdoc/require-returns-check': 1,
- // 'jsdoc/require-returns-description': 1,
- // 'jsdoc/require-returns-type': 1,
- // 'jsdoc/valid-types': 1,
- // 行尾逗号
- 'comma-style': ['error', 'last'],
- 'comma-dangle': ['error', {
- arrays: 'always-multiline',
- objects: 'always-multiline',
- imports: 'always-multiline',
- exports: 'always-multiline',
- functions: 'only-multiline',
- }],
- 'comma-spacing': ['error', {
- before: false,
- after: true,
- }],
- // 空格、空行约定
- 'unicode-bom': ['warn', 'never'],
- 'block-spacing': ['error', 'always'],
- 'arrow-spacing': ['error', {
- before: true,
- after: true,
- }],
- 'space-before-function-paren': ['error', {
- anonymous: 'never',
- named: 'never',
- asyncArrow: 'always',
- }],
- 'space-before-blocks': ['error', 'always'],
- 'space-infix-ops': ['warn'],
- 'space-unary-ops': ['warn', {
- words: true,
- nonwords: false,
- }],
- 'spaced-comment': ['warn', 'always', {
- line: {
- markers: ['/'],
- exceptions: ['/', '*'],
- },
- },
- ],
- 'switch-colon-spacing': ['warn', {
- before: false,
- after: true,
- }],
- 'eol-last': ['error', 'always'],
- 'no-trailing-spaces': ['error', { ignoreComments: true }],
- },
- };
|