Поддержка экспериментального синтаксиса «OptionChaining» в настоящее время не включена
Я получаю вышеуказанную ошибку. Я подписался на этот пост и добавил "@babel/plugin-proposal-optional-chaining": "^7.7.4"
в свой devDependencies
.
Тогда я получаю эту ошибку,
Добавьте @ babel / plugin-offer-option-chaining ( https://git.io/vb4Sk ) в раздел «plugins» вашей конфигурации Babel, чтобы включить преобразование.
Поэтому я последовал этому посту и добавил .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
все еще имеет более старую конфигурацию, и я не уверен, как я могу это обновить.
источник
^3.7.2
. Или, по крайней мере, такpackage.json
говорит мой . Я тоже пыталсяnpm install
.Ответы:
Create-React-App использует babel для переноса TypeScript, поэтому он не использует вашу установленную версию TypeScript для npm. Версия 3.3.0 реагирующих скриптов поддерживает TypeScript 3.7. Вы можете установить его и использовать с:
yarn add react-scripts@3.3.0
-или-
npm install -s react-scripts@3.3.0
источник
react-scripts 3.3.0
без использования TS?Реактивные скрипты 3.3.0 и выше поддерживают это. Нет необходимости устанавливать response-scripts @ next.
Просто поместите в package.json,
"react-scripts": "^3.3.0"
и он будет работать.источник
package.json
Конфигурационные-overrides.js
.babelrc
подробный пост
источник
"So my question is how can I enable optional chaining without re-wiring the whole CRA?"
customize-cra
если я уже использую его для переопределения конфигурации? Например:module.exports = function override(config) { config.resolve.modules = [path.resolve(__dirname, 'src'), 'node_modules']; return config; };