Skip to content

Autofix moving a binding import from above to below a side-effecting import #2876

Open
@loucadufault

Description

@loucadufault

eslint: 7.28.0
eslint-plugin-import: 2.28.1

Repro:

app.tsx

 import 'babel-polyfill'
 import * as React from 'react'
 import { render } from 'react-dom'
-import { Provider } from 'react-redux'
 import { hot } from 'react-hot-loader'
-import { s } from './s/s'
+import { Provider } from 'react-redux'
 import { Switch, Route, BrowserRouter as Router } from 'react-router-dom'
-import { M } from './P/M'
+
 import { F } from './P/F'
-import { i } from './s/w/w'
+import { M } from './P/M'
 
 import 's/s.min.css' // external dep
 import './App.css'
 import { D } from './components/D'
+import { s } from './s/s'
+import { i } from './s/w/w'

base-eslintrc.js

module.exports = {
  root: true,
  ignorePatterns: ['**/dist/', '**/node_modules/', '**/build/'],
  env: {
    es2021: true,
    node: true,
    jest: true,
  },
  extends: [
    'eslint:recommended',
    'prettier',
    'plugin:import/errors',
    'plugin:import/warnings',
    'plugin:prettier/recommended',
  ],
  plugins: ['import'],
  settings: {
    'import/resolver': {
      node: {
        extensions: ['.js', '.ts'],
        moduleDirectory: ['node_modules', 'src/'],
      },
      typescript: {
        alwaysTryTypes: true,
      },
    },
  },
  rules: {
    'import/order': [
      'error',
      {
        'newlines-between': 'always',
        alphabetize: { order: 'asc' },
      },
    ],
  },
}

.eslintrc.js

const overrides = [
  {
    files: ['**/*.ts', '**/*.tsx'],
    parser: '@typescript-eslint/parser',
    parserOptions: {
      jsx: true,
      project: true,
      tsconfigRootDir: './',
    },
    plugins: ['@typescript-eslint', 'import'],
    extends: ['plugin:@typescript-eslint/recommended', './base-eslintrc.js', 'plugin:import/typescript'],
    rules: tsRules,
  },
]

module.exports = {
  extends: ['./tes-eslint-commons.js'],
  plugins: ['import'],
  overrides,
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions