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 .babelrcarchivo 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 Appno 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.jsondice. Traté npm installde asegurarme de que esté actualizado. No estoy seguro si CRAhacer algo extraño debajo y usar una versión anterior de TypeScriptalguna 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.jsonarchivo a "typescript": "^3.7.2"entonces npm install. Creo que el problema es, TypeScriptsabe que estoy usando 3.7.2, pero CRAtodaví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.jsondice 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.0sin 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-crasi 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; };