问题

后端express 项目里配置的路径别名,eslint 不认识,报错。

monorepo 项目 Unable to resolve path to module ‘xxx‘.eslintimport/no-unresolved-LMLPHP
monorepo 项目 Unable to resolve path to module ‘xxx‘.eslintimport/no-unresolved-LMLPHP
monorepo 项目 Unable to resolve path to module ‘xxx‘.eslintimport/no-unresolved-LMLPHP

Unable to resolve path to module '@/app/Prisma'.eslintimport/no-unresolved

但是在webstrom 里正常使用。

分析

eslint 不认识 ,猜测是配置的问题。
网上也有说配置下.eslintrc.js文件的,试了试都不对。仔细分析应该不是这个问题,不然webstrom打开为什么没有错。

问题解决

最后怀疑到eslint vscode 插件上,看了下文档,其实文档写的很清楚。

eslint vscode插件有一个默认工作区配置的属性eslint.workingDirectories,这个属性可选择:

  • [{“mode”:“location”}] : (@since 2.0.0):指示ESLint使用工作区文件夹位置或文件位置(如果未打开工作区文件夹)作为工作目录。这是默认的,并且与旧版本的ESLint扩展(1.9.x版本)中使用的策略相同。
  • [{“mode”:“auto”}]: (@since 2.0.0):指示ESLint根据package.json、.eslintignore和.eslintrc* 文件的位置推断工作目录。这可能在许多情况下有效,但也可能导致意想不到的结果。
  • string[]: 要使用的工作目录数组。
    请考虑以下目录布局:
root/
  client/
    .eslintrc.json
    client.js
  server/
    .eslintignore
    .eslintrc.json
    server.js

然后使用设置:

  "eslint.workingDirectories": [ "./client", "./server" ]
  • [{ "pattern": glob pattern }] : @since 2.0.0):允许指定检测工作目录的模式。这基本上是列出每个目录的捷径。如果你有一个mono仓库,你所有的项目都在一个packages文件夹下,你可以使用{“pattern”:“./ packages/*/”}使所有这些文件夹成为工作目录。

我这边没有修改全部配置在vscode setting里设置成了mode auto

monorepo 项目 Unable to resolve path to module ‘xxx‘.eslintimport/no-unresolved-LMLPHP

参考:

https://gitcode.net/mirrors/microsoft/vscode-eslint?utm_source=csdn_github_accelerator

05-30 21:09