npm 使用 vite 运行构建错误(打字稿)

错误

node_modules/@types/react-router-dom/index.d.ts:13:10 - error TS2305: Module '"react-router"' has no exported member 'match'.
node_modules/@types/react-router-dom/index.d.ts:19:5 - error TS2305: Module '"react-router"' has no exported member 'PromptProps'.
node_modules/@types/react-router-dom/index.d.ts:20:5 - error TS2305: Module '"react-router"' has no exported member 'Prompt'.
node_modules/@types/react-router-dom/index.d.ts:23:5 - error TS2305: Module '"react-router"' has no exported member 'RedirectProps'.
node_modules/@types/react-router-dom/index.d.ts:24:5 - error TS2305: Module '"react-router"' has no exported member 'Redirect'.
node_modules/@types/react-router-dom/index.d.ts:25:5 - error TS2305: Module '"react-router"' has no exported member 'RouteChildrenProps'.
node_modules/@types/react-router-dom/index.d.ts:26:5 - error TS2305: Module '"react-router"' has no exported member 'RouteComponentProps'.
node_modules/@types/react-router-dom/index.d.ts:31:5 - error TS2305: Module '"react-router"' has no exported member 'StaticRouterProps'.
node_modules/@types/react-router-dom/index.d.ts:32:5 - error TS2305: Module '"react-router"' has no exported member 'StaticRouter
node_modules/@types/react-router-dom/index.d.ts:33:5 - error TS2305: Module '"react-router"' has no exported member 'SwitchProps'.
node_modules/@types/react-router-dom/index.d.ts:34:5 - error TS2305: Module '"react-router"' has no exported member 'Switch'.
node_modules/@types/react-router-dom/index.d.ts:35:5 - error TS2305: Module '"react-router"' has no exported member 'match'.
... same errors but different members

node_modules/@types/react-router/index.d.ts:189:53 - error TS2694: Namespace '"C:/Users/user/Desktop/app/frontend/node_modules/history/index"' has no exported member 'LocationState'.
189 export function useHistory<HistoryLocationState = H.LocationState>(): H.History<HistoryLocationState>;
node_modules/@types/react-router/index.d.ts:189:71 - error TS2315: Type 'History' is not generic.
189 export function useHistory<HistoryLocationState = H.LocationState>(): H.History<HistoryLocationState>;                     
node_modules/@types/react-router/index.d.ts:191:35 - error TS2694: Namespace '"C:/Users/user/Desktop/app/frontend/node_modules/history/index"' has no exported member 'LocationState'.
191 export function useLocation<S = H.LocationState>(): H.Location<S>;                                   
node_modules/@types/react-router/index.d.ts:191:53 - error TS2315: Type 'Location' is not generic.
191 export function useLocation<S = H.LocationState>(): H.Location<S>;
... again more errors

package.json

{
  "name": "frontend",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@reduxjs/toolkit": "^1.7.0",
    "@types/react-redux": "^7.1.20",
    "@types/react-router-dom": "^5.3.2",
    "axios": "^0.24.0",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-redux": "^7.2.6",
    "react-router-dom": "^6.1.0"
  },
  "devDependencies": {
    "@types/react": "^17.0.33",
    "@types/react-dom": "^17.0.10",
    "@vitejs/plugin-react": "^1.0.7",
    "typescript": "^4.4.4",
    "vite": "^2.7.0"
  }
}

每当我尝试构建时,它都会向我显示我以前从未遇到过的所有这些错误,所以不知道为什么会这样......,第一部分与 ts 有关,所以这是可以修复的,但第二部分没有意义,任何帮助表示赞赏!

stack overflow npm run build error with vite (typescript)
原文答案
author avatar

接受的答案

我有同样的问题。当我处于开发模式时,我的环境可以正常工作,但是当我通过Vite启动构建时,我会出现一些React-Router-Dom错误。

看起来 @types/react-router-dom 尚不适用于React-Router V6。当前, https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router-dom/index.d.ts 显示 Type definitions for react-router-dom 5.3

因此,选项是降级到React-Router V5,或等到V6的类型可用。


答案:

作者头像

也许您可以尝试将 "skipLibCheck": true 添加到 tsconfig.json。

{
  "compilerOptions": {
    // ...
    "skipLibCheck": true
  }
}