目前尚不支持实验语法“ optionalChaining” 已启用
我遇到了以上错误。我遵循了此post,并将"@babel/plugin-proposal-optional-chaining": "^7.7.4"
添加到了我的devDependencies
中。
然后我收到此错误,
将@ babel / plugin-proposal-optional-chaining(https://git.io/vb4Sk)添加到 Babel配置的“插件”部分以启用转换。
所以我遵循了post,并将.babelrc
文件添加到了项目的根目录中
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
这似乎没有任何作用。我还听到有人提到Create React App
不允许您修改babel的配置。所以我的问题是如何在不重新接线整个整个CRA
的情况下启用可选链接?
PS 。我正在使用"typescript": "^3.7.2"
,或者至少是我的package.json
所说的。我尝试npm install
以确保它已更新。不知道CRA
是否在下面做一些奇怪的事情并以某种方式使用了TypeScript
的旧版本。
编辑:
当我从CRA
开始项目时,我相信我们正在使用TypeScript: 3.6.x
。我想使用Optional Chaining
,所以我将package.json
文件更改为"typescript": "^3.7.2"
,然后是npm install
。我认为问题是,TypeScript
知道我正在使用3.7.2
,但是CRA
的配置仍然较旧,我不确定如何更新。
答案 0 :(得分:6)
反应脚本3.3.0及更高版本支持它。无需安装react-scripts @ next。
只需将其放入package.json "react-scripts": "^3.3.0"
中就可以了。
答案 1 :(得分:2)
Create-React-App使用babel转换TypeScript,因此它不使用npm安装的TypeScript版本。 @next版本的react-scripts支持TypeScript 3.7。您可以安装它并与以下对象一起使用:
yarn add react-scripts@next
-或-
npm install -s react-scripts@next
答案 2 :(得分:0)
package.json
{
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test --env=jsdom"
},
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
"customize-cra": "^0.4.1",
"react-app-rewired": "^2.1.3"
}
...other
}
config-overrides.js
const { useBabelRc, override } = require('customize-cra');
module.exports = override(useBabelRc());
.babelrc
{
"plugins": ["@babel/plugin-proposal-optional-chaining"]
}