AlloyTeam / eslint-config-alloy

Progressive ESLint config for your React/Vue/TypeScript projects
https://alloyteam.github.io/eslint-config-alloy/
2.65k stars 317 forks source link

4.6.0 eslint 不兼容 #226

Closed yzw7489757 closed 2 years ago

yzw7489757 commented 2 years ago

eslint version : "7.32.0" 原 ^4.5.1 自动升级至 4.6.0

image

解决方式: 通过 yarn 的 resolution 字段锁定 4.5.1 版本,问题解决。

yzw7489757 commented 2 years ago

该规则增加于 [5.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v5.21.0...v5.22.0)

团队的 lint 包 @typescript-eslint/eslint-plugin 还处于 4.29.0 版本,导致不能兼容,是否应该增加 peer 来限制?

xcatliu commented 2 years ago

现在 eslint-config-alloy 是单包管理,如果添加 peer 需要把所有 plugin 都加上,但你用了 React 就肯定不会用 Vue,于是会导致 install 时 peer 报错缺少依赖。

要彻底解决这个问题,需要拆成多个包吧

xcatliu commented 2 years ago

我好像找到解决办法了,可以用 peerDependenciesMeta https://docs.npmjs.com/cli/v7/configuring-npm/package-json#peerdependenciesmeta

yzw7489757 commented 2 years ago

peer 需要把所有 plugin 都加上,但你用了 React 就肯定不会用 Vue,于是会导致 install 时 peer 报错缺少依赖。

要彻底解决这个问题,需要拆成多个包吧

嗯,两者结合的方式还有待更多场景考证,目前看来似乎没问题

xcatliu commented 2 years ago

Fixed in 4.6.1

pawover commented 2 years ago

@xcatliu 现在可以同时配置 React 和 Vue 的规则吗,项目有需求混合开发,目前 eslint 会把 React 的 JSX 识别为 Vue 的 JSX

xcatliu commented 2 years ago

@Handpear 应该是可以的,如果有冲突,可以用 overrides 来针对不同文件配置不同规则