Website-Suche

reactjs - Typescript-Typenprüfergebnisse dauern außergewöhnlich lange


Ich konvertiere eine relativ neue CRA-App zu TypeScript. Die App ist relativ neu, obwohl sie so eingerichtet ist, dass sie eine ziemlich komplexe App sein kann, sodass sie alles von react-router, react-redux bis hin zu i18n-Bibliotheken und verschiedenen anderen enthält.

Jedes Mal, wenn ich 'npm run start' ausführe, kann TypeScript zwischen 20 Sekunden und mehreren Minuten benötigen, um jede Änderung zu überprüfen, selbst wenn sich tatsächlich nichts geändert hat.

Wenn ich 'tsc --diagnostics' ausführe, erhalte ich die folgenden Informationen:

Files:          5677
Lines:        118431
Nodes:           NaN
Identifiers:     NaN
Symbols:      192584
Types:         26014
Memory used: 242096K
I/O read:      8.44s
I/O write:     0.00s
Parse time:   14.28s
Bind time:     0.92s
Check time:    4.63s
Emit time:     0.00s
Total time:   19.84s

Ich frage mich, warum Knoten und Bezeichner als NaN angezeigt werden. Ich konnte niemanden finden, der dieses Problem hat, wenn er -diagnostics ausführt.

Kann jemand hierzu irgendeine Einsicht geben? Ich frage mich, ob Typescript beim Kompilieren auf einige Probleme stößt, die zu der langsamen Typüberprüfung führen.

Ich benutze Typescript v3.4.1 und VS Code v1.3.3 auf MacOS High Sierra. Ich habe versucht, meinen node_modules-Ordner zu löschen/neu zu installieren, leider ohne Erfolg, und habe versucht, das --incremental-Flag hinzuzufügen, das angeblich bewirken soll, dass Typescript Buildinformationen für zukünftige Kompilierungen zwischenspeichert, um den Vorgang zu beschleunigen, aber das hat auch nichts gebracht.

meine package.json-Abhängigkeiten und Entwicklungsabhängigkeiten

Abhängigkeiten :

    "axios": "^0.18.0",
    "browser-locale": "^1.0.3",
    "date-fns": "^1.30.1",
    "i18next": "^15.0.9",
    "i18next-browser-languagedetector": "^3.0.1",
    "prop-types": "^15.6.2",
    "react": "^16.8.4",
    "react-app-polyfill": "^0.2.2",
    "react-dom": "^16.8.4",
    "react-i18next": "^10.6.2",
    "react-loadable": "^5.5.0",
    "react-redux": "^7.0.0-beta.0",
    "react-router": "^5.0.0",
    "react-router-dom": "^5.0.0",
    "react-scripts": "2.1.8",
    "react-transition-group": "^2.5.3",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0",
    "source-map-explorer": "^1.6.0",
    "styled-components": "^4.2.0",
    "typeface-roboto": "^0.0.54",
    "typescript": "^3.4.1",
    "use-redux": "^2.2.0"

Entwicklungsabhängigkeiten

    "@types/material-ui": "^0.21.6",
    "@material-ui/core": "^3.8.2",
    "@material-ui/icons": "^3.0.2",
    "@types/axios": "^0.14.0",
    "@types/date-fns": "^2.6.0",
    "@types/jest": "^24.0.11",
    "@types/node": "^11.13.0",
    "@types/react": "^16.8.12",
    "@types/react-dom": "^16.8.3",
    "@types/react-loadable": "^5.5.1",
    "@types/react-redux": "^7.0.6",
    "@types/react-router": "^4.4.5",
    "@types/redux": "^3.6.0",
    "@types/redux-thunk": "^2.1.0",
    "@types/styled-components": "^4.1.12",
    "@types/react-router-dom": "^4.3.1",
    "enzyme": "^3.8.0",
    "enzyme-adapter-react-16": "^1.8.0",
    "jest": "^23.6.0",
    "jest-dom": "^3.0.1",
    "prettier": "1.15.3",
    "react-axe": "^3.1.0",
    "react-testing-library": "^5.4.4",
    "redux-devtools-extension": "^2.13.7",
    "redux-mock-store": "^1.5.3"

Antwort #1

Es scheint ein Leistungsproblem bei der Verwendung von typescript > 3.3.4000 und styled-components zu geben.

Wenn Sie diesen Issue-Thread lesen, scheint die vorläufige Lösung darin zu bestehen, typescript auf 3.3.4000 herunterzustufen. Bei mir hat es funktioniert, da VS Code dadurch wieder beim Überprüfen von Typen während der Bearbeitung auf dem neuesten Stand war.

In naher Zukunft ist eine Lösung hierfür entweder auf der Seite von styled-components oder typescript zu erwarten.

Verwandte Artikel