Я настроил babel-plugin-module-resolver
в моем проекте ReactJS, я использую его в сочетании с TypeScript.
, поэтому у меня есть .babelrc
:
{
"presets": [
"@babel/preset-typescript",
["@babel/preset-env", {"modules": false}],
"@babel/preset-react"
],
"plugins": [
[
"module-resolver",
{
"root": ["./src"],
"alias": {
"@modules": "./modules",
"@screens": "./screens",
"@components": "./components",
"@themes": "./themes",
"@images": "./images"
}
}
]
],
"env": {
"test": {
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
}
}
и затем мой tsconfig.json
{
"compilerOptions": {
"esModuleInterop": true,
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"allowJs": true,
"pretty": true,
"allowSyntheticDefaultImports": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": ".",
"moduleResolution": "node",
"module": "commonjs",
"target": "es6",
"jsx": "react",
"lib": ["es6", "dom"],
"paths": {
"@modules/*": ["src/modules/*"],
"@screens/*": ["src/screens/*"],
"@components/*": ["src/components/*"],
"@themes/*": ["src/themes/*"],
"@images/*": ["src/images"]
}
},
"exclude": ["node_modules"]
}
Для получения более подробной информации о моей файловой архитектуре, это выглядит как this
В моем файле rout.tsx я пытаюсь Импортировать модули тем
import React from 'react'
import { BrowserRouter, Route as Road, Switch } from 'react-router-dom'
import { Route } from '@modules/types/navigations'
import { Main } from '@themes/ui/theme'
Возвращается следующая ошибка: Модуль не найден: Ошибка: Не удается разрешить 'themes / ui / theme' в проекте \ sr c импорт работает для import { Route } from '@modules/types/navigations'
, но не для import { Main } from '@themes/ui/theme'
Следующий код этих файлов:
(theme.ts)
import styled from 'styled-components'
export const Main = styled.div`
background: #000
`
(navigations.ts)
export interface Route {
path: string,
exact?: boolean,
children: JSX.Element
}
Я пробовал много изменений пути в .babelrc / tsconfig. json, но я Не понимаю, почему импорт моих модулей не работает отдельно @ modules
Заранее спасибо!