#reactjs #eslint #tsconfig #react-tsx #typescript-eslint
#reactjs #eslint #tsconfig #реагировать-tsx #typescript-eslint
Вопрос:
Я добавляю конфигурацию typescript для путей:
{
//.....
"moduleResolution": "node",
{
"baseUrl": "app",
"paths": {
"@app/*": ["*"],
"@folder/*": ["folder/*"],
//Other paths
},
}
Добавлена конфигурация в webpack:
resolve: {
extensions: [".tsx", ".ts", ".js", ".jsx", ".css", ".json"],
alias: {
"@app":path.resolve(__dirname "../", "app"),
"@services":path.resolve(__dirname "../app", "folder")
},
modules: [
"node_modules", path.resolve(process.cwd(), "app")
],
plugins: [
new TsConfigPathsPlugin({
configFile: "../tsconfig.json"
}),
],
},
И вот мой файл .eslint:
"settings": {
"import/resolver": {
"node": {
"paths": [
"app"
],
"extensions": [
".ts",
".tsx",
".jest.tsx",
".d.ts"
]
}
}
После этого я пытаюсь импортировать что-то вроде этого:
import {component} from "@folder/component";
Все собрано, компилятор не генерирует ошибок
Но я получаю ошибку в eslint:
ESLint: не удается разрешить путь к модулю «@folder /component». (импорт / неразрешенный)
Я пытаюсь разобраться в этом уже третий день, клиент не хочет устанавливать дополнительные плагины, я был бы очень благодарен за вашу помощь!
Ответ №1:
node
распознаватель не понимает TypeScript paths
. Поэтому он специально ищет вызываемый модуль узла @folder/component
, который не будет существовать.
Вы можете использовать распознаватель машинописи для плагина: https://www.npmjs.com/package/eslint-import-resolver-typescript
Комментарии:
1. Спасибо, это работает для меня 🙂