apptools-lab / AppWorks

🐻 基于 VS Code 插件的前端研发工具集,站点国内镜像:https://apptools.gitee.io
https://appworks.site/
MIT License
995 stars 181 forks source link

VSCode 中关于使用Doctor检测语法过程中,eslint 检测后的结果和Doctor中的结果不一致 #978

Closed Yancy1028 closed 2 years ago

Yancy1028 commented 2 years ago

插件名/Extension: Doctor

您的本地环境信息/Your local environment information

您遇到的问题及复现步骤/What are your problems and how to reproduce them

image

IDE的结果

lQLPDhr9Uf6IbLPNAhTNBBmwPKJ0OTs3ucEBzEhi8cCXAA_1049_532

Doctor的结果

image

您期待的正确结果/The right result you're looking forward to

另外针对Doctor 中的功能,希望能够有相关配置可以指定忽略扫描检测的文件

主要针对typhonjs-escomplex的代码可维护度的检测,针对与项目本身像babel.config.jspostcss.config.js 等开发环境配置文件可以考虑无需进行检测,以便于针对实际开发内容进行维护度检测

Yancy1028 commented 2 years ago

还有一个问题可能不太合理

doctor 里面的 eslint 为啥会检测我的json 文件?如图:

1640333453984_8B7582E1-A197-404f-BD32-09AD1668640C

目前我暂时把这个json 加入到了.eslintignore 里面了

fyangstudio commented 2 years ago

这个是符合预期的,关于提到的几个问题:

项目 eslint 运行结果和 Doctor 检测结果不一致

原因:

  1. 版本差异,VS Code 插件中和你项目中的规范版本不同。 但大体一致,不是主要原因。
  2. ESLint 配置读取方式不同,Doctor 仅合并根目录下的 eslintrc 配置。 ESLint 则是 文档 。这是主要原因,ESLint 读取了你项目中包含的另一份配置,而 Doctor 使用顶层配置。
  3. 检测文件类型未申明 .vue 文件,建议修改脚本为 eslint --cache --ext .js,.jsx,.ts,.tsx,.vue ./

结论: 不建议项目中嵌套多份项目配置,如果你是模板生成类项目,建议子模板项目中的 配置 以 _ 开头,避免影响主应用配置,包含 ESLint、 GIT 等其他配置。可参考:https://github.com/ice-lab/react-materials/tree/master/scaffolds/ant-design-lite

为什么会检测 package.json

原因: 我们希望 package.json 中不要出现错误的用法,比如 * 的版本 或 使用了有风险的 npm 包。

Yancy1028 commented 2 years ago
  1. ESLint 配置读取方式不同,Doctor 仅合并根目录下的 eslintrc 配置。 ESLint 则是 文档 。这是主要原因,ESLint 读取了你项目中包含的另一份配置,而 Doctor 使用顶层配置。

实际上我在做Doctor 时,我是通过vscode 单独打开的文件夹 vue-simple 进行检测的,这个情况还需要麻烦你们进一步测试

Yancy1028 commented 2 years ago

什么会检测 package.json

fyangstudio commented 2 years ago

你的问题 还包含 社区在讨论的 vue lint 和 直接使用 eslint 的问题。

我建议是如果你要用 @icewors/spec (eslint-config-ali) 那么不要使用 vue lint 。因为 eslint-confit-ali 集成了 很多 ts vue 的 parser 和 plugin,这些在 vue lint 中 可能有不符合预期的表现。 正因已经内置了 parser 和 plugin 所以更不建议 你 overrides ts 和 vue 的配置。

fyangstudio commented 2 years ago

目前 @icewors/spec vue 链路回归测试正常,这个 issue 暂时关闭,有新的问题 可以重新打开。