You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求ESLint规则:强制命名导入单独占一行

实现ESLint强制命名导入单独占一行的配置

你需要的是强制多个命名导入必须各自单独占一行,同时允许单个命名导入可以是单行或多行格式。object-curly-newline确实做不到这点,它只控制大括号的换行逻辑,管不了内部成员的换行。

你可以通过两个ESLint核心规则的组合来实现需求:

1. object-property-newline

这个规则强制对象的每个属性(这里对应导入的命名成员)单独占一行,直接禁止多个成员挤在同一行的情况。配置如下:

"object-property-newline": ["error", { "allowAllPropertiesOnSameLine": false }]

2. object-curly-newline

配合这个规则控制导入语句大括号的换行逻辑,确保当有2个及以上命名导入时,大括号必须换行;单个导入则允许单行或多行的灵活格式。配置:

"object-curly-newline": ["error", {
  "ImportDeclaration": { "multiline": true, "minProperties": 2 },
  "ExportDeclaration": "off" // 不需要管控导出语句的话可以关闭
}]

完整配置示例

把两个规则加到你的ESLint配置文件里:

{
  "rules": {
    "object-property-newline": ["error", { "allowAllPropertiesOnSameLine": false }],
    "object-curly-newline": ["error", {
      "ImportDeclaration": { "multiline": true, "minProperties": 2 }
    }]
  }
}

验证效果

  • 符合要求的格式都会通过检查:
    // Valid
    import {
      x,
      y,
      z
    } from './foo';
    
    import {
      x
    } from './foo';
    
    import { x } from './foo';
    
  • 禁止的格式会直接报错:
    // Invalid
    import { x, y, z } from './foo';
    
    import {
      x, y, z
    } from './foo';
    

内容的提问来源于stack exchange,提问作者megawac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:59:50