Nic*_*ley 4 typescript eslint visual-studio-code lerna monorepo
我正在一个项目中使用 Typescript、Lerna 和 monorepos。我有以下项目结构:
tsconfig.json
packages/
project/
tsconfig.json
...
...
Run Code Online (Sandbox Code Playgroud)
我的根tsconfig.json看起来像这样:
{
"compilerOptions": {
"baseUrl": ".",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"skipLibCheck": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"target": "es5",
"composite": true,
"strictPropertyInitialization": false
}
}
Run Code Online (Sandbox Code Playgroud)
嵌套project tsconfig.json看起来像这样:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"jsx": "react",
"baseUrl": "./",
"paths": {
"pages/*": ["./src/pages/*"],
"hooks/*": ["./src/hooks/*"],
"assets/*": ["./src/assets/*"],
"styles/*": ["./src/styles/*"],
"context/*": ["./src/context/*"],
"components/*": ["./src/components/*"],
}
},
"include": ["./src/**/*", "global.d.ts"],
"exclude": ["node_modules", "dist"]
}
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作,除了当我从 VSCode 中的根目录打开项目时,ESLint 扩展抱怨我的别名。
前任。
Unable to resolve path to module 'components/Button'
Run Code Online (Sandbox Code Playgroud)
当从命令行运行 eslint 时,一切都会按预期工作(即./node_modules/.bin/eslint --ext .js,.jsx,.ts,.tsx .)。
此外,如果我从project目录中打开 VSCode,一切也会正常运行。看起来 ESLint 扩展无法识别project为根目录,即使tsconfig.json在那里定义了一个文件。这对我来说没有意义,因为它违背了VSCode 文档
目录中存在 jsconfig.json 文件表明该目录是 JavaScript 项目的根目录
关于如何解决这个问题有什么想法吗?
小智 13
这个 VS Code 设置为我解决了这个问题。Eslint 插件默认使用每个工作区文件夹作为“根”。
"eslint.workingDirectories": [{ "mode": "auto" }]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |