Obsługa eksperymentalnej składni „opcjonalny łańcuch” nie jest obecnie włączona
Otrzymałem powyższy błąd. Śledziłem ten post i dodałem "@babel/plugin-proposal-optional-chaining": "^7.7.4"
do swojego devDependencies
.
Wtedy pojawia się ten błąd,
Dodaj @ babel / plugin-wniosek-opcjonalny-łańcuchowy ( https://git.io/vb4Sk ) do sekcji „plugins” konfiguracji Babel, aby umożliwić transformację.
Więc śledziłem ten post i dodałem .babelrc
plik do katalogu głównego mojego projektu
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
Wydawało się, że to nic nie robi. Słyszałem też, że ktoś wspomniał, że Create React App
nie pozwala ci modyfikować konfiguracji Babel. Więc moje pytanie brzmi: jak mogę włączyć opcjonalne łączenie łańcuchów bez ponownego okablowania całości CRA
?
PS Używam "typescript": "^3.7.2"
, a przynajmniej tak package.json
mówią. Próbowałem npm install
upewnić się, że jest aktualizowany. Nie jestem pewien, czy CRA
robisz coś dziwnego i używasz w TypeScript
jakiś sposób starszej wersji .
EDYCJA:
Kiedy zaczynałem projekt CRA
, wydaje mi się, że używaliśmy TypeScript: 3.6.x
. Chciałem użyć Optional Chaining
, więc zmieniłem package.json
plik "typescript": "^3.7.2"
potem npm install
. Myślę, że problem polega na tym, TypeScript
że wie, że używam 3.7.2
, ale CRA
nadal mam starszą konfigurację i nie jestem pewien, jak mogę to zaktualizować.
źródło
^3.7.2
. A przynajmniej tak mipackage.json
mówi. Też próbowałemnpm install
.Odpowiedzi:
Aplikacja Create-React używa babel do transponowania TypeScript, więc nie używa zainstalowanej wersji npm TypeScript. Wersja 3.3.0 skryptów reagujących obsługuje TypeScript 3.7. Możesz go zainstalować i używać z:
yarn add [email protected]
-lub-
npm install -s [email protected]
źródło
react-scripts 3.3.0
bez użycia TS?Skrypty React 3.3.0 i nowsze obsługują to. Nie ma potrzeby instalowania skryptów reagujących @ dalej.
Wystarczy włożyć plik package.json
"react-scripts": "^3.3.0"
i będzie działać.źródło
pakiet.json
config-overrides.js
.babelrc
szczegółowy post na blogu
źródło
"So my question is how can I enable optional chaining without re-wiring the whole CRA?"
customize-cra
jeśli już go używam do zastąpienia konfiguracji? Np .:module.exports = function override(config) { config.resolve.modules = [path.resolve(__dirname, 'src'), 'node_modules']; return config; };