O suporte para a sintaxe experimental 'optionalChaining' não está ativado no momento
Eu estava recebendo o erro acima. Eu segui este post e adicionei "@babel/plugin-proposal-optional-chaining": "^7.7.4"
ao meu devDependencies
.
Então estou recebendo esse erro,
Adicione @ babel / plugin-proposta-opcional-encadeamento ( https://git.io/vb4Sk ) à seção 'plugins' da sua configuração do Babel para permitir a transformação.
Então eu segui este post e adicionei o .babelrc
arquivo na raiz do meu projeto
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
Isso não pareceu fazer nada. Também ouvi alguém mencionando que Create React App
não permite modificar as configurações de babel. Portanto, minha pergunta é como posso ativar o encadeamento opcional sem religar o todo CRA
?
PS estou usando "typescript": "^3.7.2"
, ou pelo menos é o que package.json
diz. Eu tentei npm install
garantir que ele seja atualizado. Não tenho certeza se CRA
estou fazendo algo estranho por baixo e usando a versão mais antiga de TypeScript
alguma forma.
Edição:
Quando eu comecei o projeto CRA
, acredito que estávamos usando TypeScript: 3.6.x
. Eu queria usar Optional Chaining
, então mudei meu package.json
arquivo para "typescript": "^3.7.2"
então npm install
. Acho que o problema é, TypeScript
sabe que estou usando 3.7.2
, mas CRA
ainda tenho uma configuração mais antiga e não tenho certeza de como posso atualizá-la.
fonte
^3.7.2
. Ou pelo menos é o quepackage.json
diz. Eunpm install
também tentei .Respostas:
O Create-React-App usa o babel para transpilar o TypeScript, para que ele não esteja usando a versão instalada do TypeScript npm. A versão 3.3.0 dos react-scripts suporta o TypeScript 3.7. Você pode instalá-lo e usá-lo com:
yarn add [email protected]
-ou-
npm install -s [email protected]
fonte
react-scripts 3.3.0
sem usar o TS?O React scripts 3.3.0 e superior são compatíveis. Não há necessidade de instalar o react-scripts @ next.
Basta colocar no package.json
"react-scripts": "^3.3.0"
e ele funcionará.fonte
package.json
config-overrides.js
.babelrc
postagem detalhada do blog
fonte
"So my question is how can I enable optional chaining without re-wiring the whole CRA?"
customize-cra
se já estou usando-o para substituir a configuração? Por exemplo:module.exports = function override(config) { config.resolve.modules = [path.resolve(__dirname, 'src'), 'node_modules']; return config; };