El soporte para la sintaxis experimental 'optionalChaining' no está habilitado actualmente
Estaba recibiendo el error anterior. Seguí esta publicación y agregué "@babel/plugin-proposal-optional-chaining": "^7.7.4"
a mi devDependencies
.
Entonces recibo este error,
Agregue @ babel / plugin-offer-optional-chaining ( https://git.io/vb4Sk ) a la sección 'plugins' de su configuración de Babel para permitir la transformación.
Así que seguí esta publicación y agregué el .babelrc
archivo a la raíz de mi proyecto
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
Esto no parecía hacer nada. También escuché a alguien mencionar que Create React App
no te permite modificar las configuraciones de Babel. Entonces, mi pregunta es ¿cómo puedo habilitar el encadenamiento opcional sin volver a cablear todo CRA
?
PD : estoy usando "typescript": "^3.7.2"
, o al menos eso es lo que package.json
dice. Traté npm install
de asegurarme de que esté actualizado. No estoy seguro si CRA
hacer algo extraño debajo y usar una versión anterior de TypeScript
alguna manera.
EDITAR:
Cuando comencé el proyecto con CRA
, creo que estábamos usando TypeScript: 3.6.x
. Quería usar Optional Chaining
, así que cambié mi package.json
archivo a "typescript": "^3.7.2"
entonces npm install
. Creo que el problema es, TypeScript
sabe que estoy usando 3.7.2
, pero CRA
todavía tengo una configuración anterior y no estoy seguro de cómo puedo actualizar eso.
fuente
^3.7.2
. O al menos eso es lo quepackage.json
dice mi . Yo también lo he intentadonpm install
.Respuestas:
Create-React-App usa babel para transpilar el TypeScript para que no use su versión npm instalada de TypeScript. La versión 3.3.0 de react-scripts admite TypeScript 3.7. Puede instalarlo y usarlo con:
yarn add [email protected]
-o-
npm install -s [email protected]
fuente
react-scripts 3.3.0
sin usar TS?React scripts 3.3.0 y superior lo admite. No es necesario instalar react-scripts @ next.
Simplemente ponga el paquete.json
"react-scripts": "^3.3.0"
y funcionará.fuente
package.json
config-overrides.js
.babelrc
publicación de blog detallada
fuente
"So my question is how can I enable optional chaining without re-wiring the whole CRA?"
customize-cra
si ya lo estoy usando para anular la configuración? Por ejemplo:module.exports = function override(config) { config.resolve.modules = [path.resolve(__dirname, 'src'), 'node_modules']; return config; };