-
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tsconfig.json "references" is not evaluated #94
Comments
Yep, |
My workaround was to include the referenced tsconfigs in the module.exports = {
// ...,
settings: {
'import/resolver': {
typescript: {
project: [
__dirname + '/tsconfig.json',
__dirname + '/tsconfig.other.json',
],
},
},
},
} |
…terns `getTsConfig` treats every path as a directory and looks for a `tsconfig.json` in the closest parent directory this breaks any configuration that uses file names other than tsconfig.json, as is convention for [solution-style](https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/#solution-style-tsconfig) tsconfigs, which is exacerbated by the lack of support for the `references` field (see import-js#94)
…terns `getTsConfig` treats every path as a directory and looks for a `tsconfig.json` in the closest parent directory this breaks any configuration that uses file names other than tsconfig.json, as is convention for [solution-style](https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/#solution-style-tsconfig) tsconfigs, which is exacerbated by the lack of support for the `references` field (see import-js#94)
…terns `getTsConfig` treats every path as a directory and looks for a `tsconfig.json` in the closest parent directory this breaks any configuration that uses file names other than tsconfig.json, as is convention for [solution-style](https://devblogs.microsoft.com/typescript/announcing-typescript-3-9/#solution-style-tsconfig) tsconfigs, which is exacerbated by the lack of support for the `references` field (see import-js#94)
This didn't seem to solve the problem for me. Any paths defined that are pointing to a reference still don't seem to work, but they work fine if I update their imports to use a relative path instead. Is it possible to see more of your config, or a sample repo? Would highly appreciate! |
Or maybe you can provide a reproduction instead. |
Good point! I should, given I'm the one with the issue, that is on me. I can't put together a full reproduction right now, but here's a breakdown of my config files. I have a single root {
"compilerOptions": {
"module": "ESNext",
"target": "es2020",
"esModuleInterop": true,
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": false,
"baseUrl": ".",
"strictNullChecks": true,
"isolatedModules": false,
"composite": true,
"removeComments": true,
"allowSyntheticDefaultImports": true,
"paths": {
"@backend/*": ["./backend/src/*"],
"@client/*": ["./frontend/src"],
"@app/*": ["./backend/src/app/*"],
"@shared-types": ["./shared-types/src/*"],
"*": ["frontend/node_modules/*", "backend/node_modules/*"],
},
},
"include": [
"./frontend",
"./backend",
"./shared-types"
],
} These paths are replicated in And my module.exports = {
extends: [
'eslint:recommended',
],
env: {
browser: true,
node: true,
},
root: true,
ignorePatterns: [
".*",
"lib/**/*",
],
parserOptions: {
sourceType: "module",
ecmaVersion: 2020
},
overrides: [
{
files: ["**/*.ts"],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: [
'./tsconfig.json',
],
EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true
},
plugins: ['@typescript-eslint', 'import'],
settings: {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {
"project": [
"tsconfig.json",
__dirname + "/shared-types/tsconfig.json",
__dirname + "/backend/tsconfig.json",
__dirname + "/frontend/tsconfig.json"
]
}
}
}
}
]
}; |
@psibean Thanks, but you need to provide a minimal but runnable reproduction so that we can help to debug. |
Hi there, I ran into this issue as well and made a reproduction here: https://github.com/publicJorn/issue-eslint-import-resolver-typescript It is a vite with react and typescript project, which includes some initial eslint config. I added Note that like DrJume mentioned, the issue can be worked around by adding a projects array. But this is not ideal when creating a shareable eslint config, like I am. |
When reading tsconfig.json, it seems to be ignoring the "references" array which includes paths to other tsconfig files in the same directory.
You can reproduce my repo with
npm init vue@3
and then addeslint-plugin-import
with this resolver.The text was updated successfully, but these errors were encountered: