如何使 ESLint 强制导入全部在单独的行上或全部在单行上?

TTT*_*TTT 10 typescript eslint

我使用 ESLint 来检查 TypeScript。我想配置 ESLint,以便它强制导入全部在单独的行上或全部在单行上。

不行:

import {
    a, b,
    c,
    d
} from "letters";
Run Code Online (Sandbox Code Playgroud)

好的:

import { a, b, c, d } from "letters";
Run Code Online (Sandbox Code Playgroud)

好的:

import {
    a,
    b,
    c,
    d
} from "letters";
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果可能的话,如何实现?

Mon*_*zek 13

我找到了这个问题的解决方案!

昨天我花了4-5个小时讨论这个话题。

请使用https://github.com/SeinopSys/eslint-plugin-import-newlines(eslint 插件)。

只需几个步骤即可满足您的要求:

  1. 安装插件npm install eslint-plugin-import-newlines --save-dev
  2. 添加import-newlines到配置文件的插件部分,.eslintrc如下所示。
{
    plugins: ['import-newlines'],
}
Run Code Online (Sandbox Code Playgroud)
  1. 添加import-newlines/enforce到配置文件的规则部分,.eslintrc如下所示(默认规则)。
{
    rules: {
        'import-newlines/enforce': 'error',
    }
}
Run Code Online (Sandbox Code Playgroud)

或(我的规则)

{
    rules: {
        'import-newlines/enforce': ['error', { items: 40, 'max-len': 120 }],
    }
}
Run Code Online (Sandbox Code Playgroud)

我的规则如下所述:

  1. 对于import一行长度不超过 120 个字符(内部计算)的情况,将强制导入为一行。
  2. 对于import一行长度超过 120 个字符(内部计算)的情况,将强制导入多行(每个导入的项目将在单独的行上)

祝好运并玩得开心点!