简体   繁体   中英

eslint throwing errors where there are no errors

I'm receiving the following errors when running yarn eslint :

/…/src/a.js
  4:1   error  Expected indentation of 1 tab but found 2 spaces   indent
  4:43  error  Strings must use singlequote                       quotes
  5:1   error  Expected indentation of 2 tabs but found 4 spaces  indent
  6:1   error  Expected indentation of 1 tab but found 2 spaces   indent
  6:6   error  Strings must use singlequote                       quotes

✖ 5 problems (5 errors, 0 warnings)
  5 errors and 0 warnings potentially fixable with the `--fix` option.

This is my .eslintrc.js file:

module.exports = {
    env: {
        browser: true,
        es2021: true,
    },
    extends: [
        'eslint:recommended',
        'plugin:react/recommended',
    ],
    parserOptions: {
        ecmaFeatures: { jsx: true },
        ecmaVersion: 12,
        sourceType: 'module',
    },
    plugins: ['react'],
    settings: {
        react: { version: 'detect' },
    },
    rules: {
        indent: [
            'error',
            'tab'
        ],
        'linebreak-style': [
            'error',
            'unix',
        ],
        quotes: [
            'error',
            'single'
        ],
        semi: [
            'error',
            'always'
        ]
    }
};

… and the file in question:

import React from "react";
import { css } from "./a.css";

export function App() {
\treturn (
\t\t<div className={css.App}>
\t\t\tHello.
\t\t</div>
\t);
}

Note: I include \t here to denote tabs as Stack Overflow replaces actual tabs with 4 spaces.

None of the errors reported by eslint are actual errors in the file. All indents are correct, and I only use single quotes. Hell, there isn't even a line 43 in that file, as eslint is reporting.

What might be happening here?

indent: [
        'error',
        'tab'
    ],
quotes: [
        'error',
        'single'
    ],

This rule in you eslint tell that you shall not use space but a tab Key for indentation either remove this rule OR on the lines where the INDENT error has occured you shall find space used for indentation remove them and use the Tab key Also for the Quote Error check you variable for the string values saved using single quote, if you are using vscode then you might need to remove this rule or update the vscode setting and prevent it from updating the single quote to double quote while auto saving

facepalm.

This ended up being a problem with an aspect of the project I didn't mention. I'm using Rollup to bundle by code, along with the @rollup/plugin-eslint plugin to run eslint when building. I had my plugins in this order:

plugins: [
    babel({
        babelHelpers: 'bundled',
        exclude: 'node_modules/**',
    }),
    resolve({
        browser: true,
    }),
    eslint({
        include: '**/*.js',
        throwOnError: true,
    }),
    styles({
        modules: true,
    }),
]

I just had to move the eslint() plugin to the front of the array and all was golden.

plugins: [
    eslint({
        include: '**/*.js',
        throwOnError: true,
    }),
    babel({
        babelHelpers: 'bundled',
        exclude: 'node_modules/**',
    }),
    resolve({
        browser: true,
    }),
    styles({
        modules: true,
    }),
]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM