Дополнительный оператор в React и Babel - PullRequest
0 голосов
/ 01 сентября 2018

В моем проекте я настраиваю babel:

{
  "presets": ["react", "es2015","stage-1", "transform-optional-chaining"],
  "plugins": ["transform-runtime"]
}

А это мой devDependencies в package.json:

"devDependencies": {
    "babel-cli": "^7.0.0-alpha.19",
    "babel-loader": "^7.1.5",
    "babel-plugin-module-resolver": "^3.1.1",
    "babel-plugin-transform-optional-chaining": "^7.0.0-beta.3",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-1": "^6.24.1",
    "copy-webpack-plugin": "^4.5.2",
    "css-loader": "^1.0.0",
    "file-loader": "^1.1.11",
    "html-webpack-plugin": "^3.2.0",
    "prettier": "^1.14.2",
    "react-hot-loader": "^4.3.4",
    "style-loader": "^0.22.1",
    "url-loader": "^1.1.1",
    "webpack": "^4.16.5",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.5"
  }

Когда я запускаю проект, я получаю эту ошибку:

Не удается найти модуль 'babel-preset-transform-факультативно-цепочка'

Может кто-нибудь объяснить, как исправить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Кажется, большая проблема в том, что у вас есть смесь версий babel, все из которых устарели. «transform-факультативно-цепочка» уже включена в предварительные настройки «stage-1» для babel 7, но не был перенесен на babel 6 .

Однако, чтобы еще больше запутать ситуацию: babel покончила с предварительными настройками сцены (а предварительные настройки es201x устарели в Babel 6). Так что в последней версии babel вам не только do нужно перечислить "transform-option-chaining", но и любой другой используемый вами плагин.

Я думаю, что единственным реальным вариантом здесь (если вы хотите использовать последние плагины) является обновление до последней версии Babel 7 - которая включает в себя множество изменений, но в любом случае вам придется это делать в конечном итоге. Руководство по миграции можно найти здесь .

Полагаю, вы могли бы найти альфа-версию раньше, чем были удалены предустановки, но это просто дает вам больше работы на будущее, и, скорее всего, все равно будут внесены изменения.

0 голосов
/ 01 сентября 2018

transform-optional-chaining - плагин (не предустановка). Попробуйте изменить конфигурацию babel на:

{
  "presets": ["react", "es2015","stage-1"],
  "plugins": ["transform-runtime", "transform-optional-chaining"]
}
...