Как перейти на Babel 7 - PullRequest
       129

Как перейти на Babel 7

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

Я пытался обновить Webpack и babel до 4, 7 соответственно, но не смог заставить его работать. Также официальный документ не сильно помогает с обновлением

Я получаю следующую проблему

ошибка компилятора: ОШИБКА в Не удается найти модуль '@ babel / core' @ multi Основной

зависимости, которые я использую:

"babel-core": "^6.26.3",
"babel-eslint": "^9.0.0",
"babel-loader": "^8.0.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"webpack": "^4.15.0",
"webpack-cli": "^3.0.8",
"webpack-dev-server": "^3.1.4"

Пожалуйста, дайте мне знать, если потребуется более подробная информация.

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Вы можете использовать babel-upgrade для плавного обновления.

https://github.com/babel/babel-upgrade

После этого вам может понадобиться npm prune, чтобы отбросить устаревшие пакеты в node_modules.

EDIT:

Когда я пытался обновить babel, конфигурация babel и webpack не изменилась. поэтому мне пришлось изменить его вручную. Вот пример.

.babelrc

"presets": ["@babel/env", "@babel/react"]

webpack config

loader: 'babel-loader',
options: { presets: ['@babel/env', '@babel/react']}
0 голосов
/ 29 марта 2019

Использование babel-upgrade

Проверено на node@10.15.3, npm@6.4.1 и babel@7.4.0

Вы можете использовать следующий скрипт. (только npx на узле 5+)

npx babel-upgrade --write

Флаг --write записывает обновления ваших package.json и .babelrc.

В результате вы получите следующие модификации package.json :

"devDependencies": {
    "@babel/core": "^7.4.0",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-private-methods": "^7.4.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0"
}

.babelrc

{
  "plugins": [
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",
    [
      "@babel/plugin-proposal-class-properties"
    ],
    "@babel/plugin-proposal-json-strings",
    [
      "@babel/plugin-proposal-private-methods"
    ]
  ]
}

Из вышеперечисленных плагинов вам нужно @babel/plugin-proposal-class-properties @babel/plugin-proposal-private-methods, чтобы частные свойства работали правильно, если вы решите их реализовать.

Если вы используете eslint, не забудьте установить для вашего парсера значение babel-eslint , как в вашем файле .eslintrc :

{
    "parser": "babel-eslint"
}
0 голосов
/ 04 сентября 2018

Вавилон представил нечто под названием @ babel / core . Просто запустите npm install @babel/core.

Большая часть материала с Babel была переименована в @babel/PACKGAGE_NAME

...