Lint-staged针对被忽略的Storybook配置文件抛出ESLint警告
解决方案
核心原因
ESLint默认会忽略以.开头的隐藏目录(比如.storybook),虽然你在.eslintignore中添加了否定规则,但lint-staged在直接传递文件路径给ESLint时,ESLint的默认忽略逻辑仍可能触发该警告——这是因为lint-staged的文件传递方式和直接运行yarn lint时的扫描逻辑存在差异。
可行解决办法
1. 在lint-staged命令中直接添加忽略覆盖参数
修改package.json中的lint-staged配置,在ESLint命令里显式加入--ignore-pattern '!.storybook/**',强制ESLint处理该目录下的文件:
{ "lint-staged": { "**/*.{js,jsx,ts,tsx}": [ "eslint --ignore-pattern '!.storybook/**'", "yarn test:unit" ] } }
2. 调整.eslintignore的规则写法
将你原来的!./storybook/*替换为!.storybook/**:
*仅匹配目录下的一级文件,**会匹配目录下所有子文件和子目录- 去掉多余的
./,ESLint忽略路径默认以项目根目录为基准
3. 在ESLint配置文件中设置ignorePatterns
在你的ESLint配置文件(如.eslintrc.js或.eslintrc.json)中添加否定规则,直接覆盖ESLint的默认忽略:
module.exports = { // 其他配置项 ignorePatterns: [ // 保留你原本的忽略规则,比如: "node_modules/", "dist/", // 添加否定规则 "!.storybook/**" ] }
4. 验证配置
运行npx lint-staged --debug查看lint-staged的处理日志,确认.storybook/main.js被正确传递给ESLint,且没有触发忽略警告。
内容的提问来源于stack exchange,提问作者James Howell
相关产品推荐
相关产品推荐

