reactjs - storybook med typescript refererer ikke til tsx-fil som typescript-fil - 'Parsing error: Missing semicolon'
Jeg kan bare ikke forstå hvorfor det skjedde, jeg prøvde å fikse det i noen uker og gikk bare tilbake til JavaScript på historiene mine.
her er grenen som reproduserer feilen. Dette er hele prosjektet. Inni på ./examples vil du se demoappen som kjører med react-react-app med typescript og storybook. Inni vil du se src/stories/Xarrow.stories.tsx som når du kjører yarn storybook kaster Parsing error: Missing semicolon. akkurat som når jeg prøvde å legge typescript inn i en javascript-fil.
Jeg bruker storybook v6.2.9 som skal støtte Typescript direkte fra versjon v6.0.2beta
her er en gitpod for rask forhåndsvisning: https://gitpod.io/#https://github.com/Eliav2/react-xarrows/blob/storybook-typescript-bug vent til avhengighetsinstallasjonen er ferdig (du vil se eksempel-forhåndsvisning dukke opp på :3000). åpne deretter et nytt terminalvindu og cd ./example og kjør yarn storybook. du vil se nøyaktig de samme feilene.
Dette problemet har vært her i noen uker, og jeg er ikke helt sikker på hvorfor.
Noen ide? Jeg har allerede prøvd å slette og installere Storybook på nytt, men dette fungerte ikke.
notater :
- på grunn av avhengighetskonflikt mellom babel-loader og react-scripts måtte jeg gjøre et triks - .env-fil med SKIP_PREFLIGHT_CHECK=true for å tillate avhengighetskonflikt, men jeg vet egentlig ikke om dette er relatert til problemet mitt.
- hele prosjektet er inkludert bare for prosjektfilene som package.json og tsconfig.json filer.
- det er tsconfig.json i ./ og også i ./example
alle forslag ville vært veldig verdsatt!
Svar #1
Dette var et problem med eslint. Jeg hadde en .estlintrc-konfigurasjonsfil i rotmappen som ikke passet for demoprosjektet.
Jeg oppdaterte .eslintrc-filen for å støtte TypeScript (som forklart her) som jeg brukte, og feilen forsvant.
{
"parser": "@typescript-eslint/parser",
"plugins": [
"import",
"@typescript-eslint"
],
"rules": {
// turn on errors for missing imports
"import/no-unresolved": "error"
},
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [
".ts",
".tsx"
]
},
"import/resolver": {
"typescript": {
"alwaysTryTypes": true
// always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
},
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
},
"parserOptions": {
"ecmaVersion": 2021
},
"env": {
"es6": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
]
}
