Я попытался обновить Webpack и babel до 4 и 7 соответственно, но не смог заставить его работать. Также официальный документ мало помогает с обновлением.
У меня следующая проблема
compiler error: ERROR in Cannot find module '@babel/core' @ multi main
зависимости, которые я использую:
"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"
Пожалуйста, дайте мне знать, если потребуется дополнительная информация.





Babel изменил название модуля babel-core на @ babel / core. Просто запустите npm install @babel/core. Это установит последнюю версию ядра Babel.
Большинство пакетов в Babel было переименовано в соответствии с шаблоном @babel/PACKAGE_NAME. Поэтому, если вы хотите выполнить обновление, измените имена пакетов в соответствии с шаблоном и запустите npm install.
Для обновления до Babel 7 вы можете использовать этот руководство по миграции.
Вы можете использовать babel-upgrade для плавного обновления.
https://github.com/babel/babel-upgrade
После этого вам может понадобиться npm prune, чтобы отказаться от устаревших пакетов в node_modules.
Обновлено:
Когда я попробовал babel-upgrade, конфигурация babel и webpack не была изменена. поэтому мне пришлось изменить его вручную. Вот пример.
.babelrc
"presets": ["@babel/env", "@babel/react"]
конфигурация webpack
loader: 'babel-loader',
options: { presets: ['@babel/env', '@babel/react']}
Используйте Бабель-апгрейд
Проверено на [email protected], [email protected] и [email protected]
Вы можете использовать следующий сценарий. (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"
}
@CarmineTambascia. Ситуация немного изменилась по сравнению с версией v7.x. Как утверждают документы babel: все параметры API Babel разрешены в зависимости от вашего варианта использования, упомянутого на странице конфигурация.
это тоже следует рассматривать как ответ
может ли это быть действительным также для babel.config, поскольку в какой-то версии это имя вместо .babelrc?