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

如何为*.styles.ts文件配置@typescript-eslint规则适配@emotion自定义BEM命名

完全可以实现需求,不需要额外开发自定义ESLint规则,直接用@typescript-eslint/naming-convention自带的文件覆盖和自定义正则匹配能力,就能实现「仅*.styles.ts文件允许/强制校验改良BEM命名」的需求。

配置方案

1. 利用ESLint的overrides实现文件级规则隔离

ESLint原生支持overrides配置项,可以为匹配指定后缀的文件单独设置规则,不会影响其他业务文件的原有命名规范。

2. 用自定义正则匹配你的改良BEM格式

你使用的Selector_descendant___modifier命名格式,可以用正则^[A-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*_{3}([a-zA-Z0-9]+)?$匹配,你也可以根据自己的实际命名细节调整正则规则。

完整配置示例

以下是.eslintrc.js的配置样例:

module.exports = {
  // 此处保留你的全局ESLint原有配置
  overrides: [
    {
      // 匹配所有样式文件,如果你用的是单后缀*.style.ts修改这里即可
      files: ['*.styles.ts'],
      rules: {
        '@typescript-eslint/naming-convention': [
          'error',
          {
            // 匹配所有导出的变量
            selector: 'variable',
            modifiers: ['exported'],
            // 关闭默认的驼峰、下划线等内置格式校验
            format: null,
            custom: {
              // 绑定你自定义的改良BEM匹配正则
              regex: '^[A-Z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*_{3}([a-zA-Z0-9]+)?$',
              match: true
            },
            // 不符合规则时的报错提示
            message: '导出的样式变量需遵循 模块名_后代名___修饰符 的改良BEM命名格式'
          }
        ]
      }
    }
  ]
}

配置完成后即可生效:*.styles.ts内的导出样式变量会强制走你指定的BEM格式校验,不符合规则会直接报错,其他文件不受影响沿用原有命名规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:36:03