- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.5k
Closed
Labels
Description
We're using the import/order rule to enforce a convention in module imports. Here's how the import/order rule is currently configured in our project.
// in .eslintrc.js
module.exports = {
  rules: {
      'import/order': ['error', {
          groups: ['builtin', 'external', 'internal'],
          'newlines-between': 'always',
          alphabetize: {
              order: 'asc',
              caseInsensitive: true,
          },
      }],
}This will result in the following import conventions:
// in a module with a React component 
// "external" modules are imported first
import { Button } from 'antd'
import PropTypes from 'prop-types'
import React from 'react'
// "internal" modules are imported second
import { BrandedIcon1 } from 'components/BrandedIcon1'
import { BrandedIcon2 } from 'components/BrandedIcon2'All is well and good, except that our team's convention is to import React first when a module has React components. Therefore, the example above would become:
import React from 'react' // force React to be imported first in the "external" group
import { Button } from 'antd'
import PropTypes from 'prop-types'
import { BrandedIcon1 } from 'components/BrandedIcon1'
import { BrandedIcon2 } from 'components/BrandedIcon2'Is it possible to achieve this desired sort order using the import/order rule? I was a bit confused by the documentation of the pathGroups and pathGroupsExcludedImportTypes and I wasn't sure if these options could be used to achieve this result. Thanks in advance for the help and keep up the great work on this plugin!
asibilia, kyranjamie, full-pack-development, liuliangsir and tilwinjoykyranjamie and liuliangsir