I am making a react app with vite and typescript. When I use "vite" for development, it works fine. But when I use "tsc && vite build", @types/react-router-dom and @types/react-router throws hundreds of errors, such as
node_modules/@types/react-router-dom/index.d.ts:13:10 - error TS2305: Module '"react-router"' has no exported member 'match'.
package.json
{
"name": "client",
"version": "1.0.0",
"description": "",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"serve": "vite preview"
},
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "^6.0.2"
},
"devDependencies": {
"@types/react": "^17.0.37",
"@types/react-dom": "^17.0.11",
"@types/react-router-dom": "^5.3.2",
"@vitejs/plugin-react-refresh": "^1.3.6",
"autoprefixer": "^10.4.0",
"postcss": "^8.4.3",
"sass": "^1.43.5",
"tailwindcss": "^2.2.19",
"typescript": "^4.5.2",
"vite": "^2.6.14"
}
}
Usage of react-router-dom
App.tsx
import React from 'react'
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
import Nav from './components/Nav'
export default function App() {
return (
<>
<Router>
<Nav/>
<Routes>
<Route path="/"></Route>
</Routes>
</Router>
</>
)
}
Nav.tsx
import React from 'react'
import { Link } from 'react-router-dom'
import Logo from '../media/profile1.jpg'
import 'Nav.scss'
export default function Nav() {
return (
<>
<header className="fixed top-0 left-0 flex flex-row items-center bg-gradient-to-r from-violet-700 via-indigo-700 to-blue-700 w-screen" style={{ height: '20vh' }}>
<Link to='/' className="h-2/3 md:h-4/5 mx-4">
<img className="h-full rounded-3xl" src={Logo} alt="" />
</Link>
<div className="h-2/3 md:h-4/5 mx-4 flex items-center justify-center text-white font-bold text-7xl title">
</div>
</header>
<div style={{ marginBottom: '20vh' }} ></div>
</>
)
}