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

问题描述 投票:0回答:2

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

不好:

import {
    a, b,
    c,
    d
} from "letters";

好的:

import { a, b, c, d } from "letters";

好的:

import {
    a,
    b,
    c,
    d
} from "letters";

这可能吗?如果可以,如何实现?

typescript eslint
2个回答
15
投票

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

我昨天花了 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'],
}
  1. import-newlines/enforce
    添加到
    .eslintrc
    配置文件的规则部分,如下所示(默认规则)。
{
    rules: {
        'import-newlines/enforce': 'error',
    }
}

或者(我的规则)

{
    rules: {
        'import-newlines/enforce': ['error', { items: 40, 'max-len': 120 }],
    }
}

我的规则如下所述:

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

祝你好运,玩得开心!


0
投票

rules
中添加这一行,以便在一行上导入属性并在单独的行中导出:

'object-curly-newline': ['error', {
    ImportDeclaration: 'never',
    ExportDeclaration: 'always'
}],

根据您的喜好交换

never
always

© www.soinside.com 2019 - 2024. All rights reserved.