La prise en charge de la syntaxe expérimentale «optionalChaining» n'est pas actuellement activée
J'obtenais l'erreur ci-dessus. J'ai suivi ce post et ajouté "@babel/plugin-proposal-optional-chaining": "^7.7.4"
à mon devDependencies
.
Ensuite, je reçois cette erreur,
Ajoutez @ babel / plugin-proposition-optional-chaining ( https://git.io/vb4Sk ) à la section 'plugins' de votre configuration Babel pour activer la transformation.
J'ai donc suivi ce post et ajouté un .babelrc
fichier à la racine de mon projet
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
Cela ne semblait rien faire. J'ai également entendu quelqu'un mentionner que Create React App
cela ne vous permet pas de modifier les configurations de babel. Ma question est donc de savoir comment puis-je activer le chaînage en option sans recâbler l'ensemble CRA
?
PS J'utilise "typescript": "^3.7.2"
, ou du moins c'est ce que package.json
dit mon . J'ai essayé npm install
de m'assurer qu'il était mis à jour. Je ne sais pas si vous CRA
faites quelque chose de bizarre en dessous et utilisez une ancienne version de TypeScript
quelque façon.
EDIT:
Quand j'ai commencé le projet avec CRA
, je crois que nous utilisions TypeScript: 3.6.x
. Je voulais l'utiliser Optional Chaining
, j'ai donc changé mon package.json
fichier à ce moment- "typescript": "^3.7.2"
là npm install
. Je pense que le problème est, TypeScript
sait que j'utilise 3.7.2
, mais a CRA
toujours une configuration plus ancienne et je ne sais pas comment je peux mettre à jour cela.
la source
^3.7.2
. Ou du moins c'est ce que monpackage.json
dit. J'ai essayénpm install
aussi.Réponses:
Create-React-App utilise babel pour transpiler le TypeScript afin qu'il n'utilise pas votre version npm installée de TypeScript. La version 3.3.0 de react-scripts prend en charge TypeScript 3.7. Vous pouvez l'installer et l'utiliser avec:
yarn add [email protected]
-ou-
npm install -s [email protected]
la source
react-scripts 3.3.0
sans utiliser TS?React scripts 3.3.0 et supérieur le supporte. Il n'est pas nécessaire d'installer les react-scripts @ next.
Mettez simplement le package.json
"react-scripts": "^3.3.0"
et cela fonctionnera.la source
package.json
config-overrides.js
.babelrc
blogpost détaillé
la source
"So my question is how can I enable optional chaining without re-wiring the whole CRA?"
customize-cra
si je l'utilise déjà pour remplacer la configuration? Par exemple:module.exports = function override(config) { config.resolve.modules = [path.resolve(__dirname, 'src'), 'node_modules']; return config; };