babel 7.x - не удается разрешить 'core-js / modules / es.array.concat' - PullRequest
1 голос
/ 18 апреля 2019

Я обновил babel 6.x → 7.x, но у меня проблемы с Webpack .

Жалуется на пропажу core-js/modules/*.

Мой babel.config.js находится в корневом каталоге.Я преобразовал ранее существовавший .babelrc в js (.babelrc также выдал те же ошибки).Я предполагаю, что это какое-то столкновение со всем ядром, corejs2, во время выполнения.

В моем src есть два приложения, мое и Styleguidist (в ./node_modules).Мое приложение переносится и работает с этими package.json / babel.config , но Styleguidist нет.


Ошибка при запуске Styleguidist с веб-пакетом:

Module not found: Error: Can't resolve 'core-js/modules/es.array.concat' in '/project/src/node_modules/react-styleguidist/lib/client/rsg-components/Slot'

/node_modules/react-styleguidist/lib/client/rsg-components/Slot.js:

import "core-js/modules/es.array.concat";
import "core-js/modules/es.array.filter";
...

package.json

"dependencies": {
    "@babel/polyfill": "^7.0.0",
    "@babel/runtime-corejs2": "^7.4.3",
}
"devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-decorators": "^7.0.0",
    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
    "@babel/plugin-proposal-function-sent": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.4.3",
    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0",
    "@babel/plugin-syntax-jsx": "^7.0.0",
    "@babel/plugin-transform-modules-commonjs": "^7.4.3",
    "@babel/plugin-transform-react-jsx": "^7.3.0",
    "@babel/plugin-transform-runtime": "^7.4.3",
    "@babel/preset-env": "^7.4.3",
    "@babel/register": "^7.0.0",
    "babel-core": "^7.0.0-bridge.0",
    "babel-eslint": "^10.0.1",
    "babel-helper-vue-jsx-merge-props": "^2.0.3",
    "babel-jest": "^24.7.1",
    "babel-loader": "^8.0.0",
    "babel-plugin-dynamic-import-node": "^2.2.0",
    "babel-plugin-transform-vue-jsx": "^4.0.1",
}

babel.config.js

module.exports = {
    presets: ['@babel/preset-env'],
    plugins: [
        '@babel/plugin-transform-runtime',
        '@babel/plugin-transform-react-jsx',
        'transform-vue-jsx',
        "@babel/plugin-proposal-object-rest-spread",
        "@babel/plugin-syntax-dynamic-import",
        "@babel/plugin-syntax-import-meta",
        "@babel/plugin-proposal-class-properties",
        "@babel/plugin-proposal-json-strings",
        [
            "@babel/plugin-proposal-decorators",
            {
                "legacy": true
            }
        ],
        "@babel/plugin-proposal-function-sent",
        "@babel/plugin-proposal-export-namespace-from",
        "@babel/plugin-proposal-numeric-separator",
        "@babel/plugin-proposal-throw-expressions"],
    comments: false
}

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Цитирование из Babel 7.4.0 релиз :

@ babel / polyfill - это не плагин или предустановка, а пакет времени выполнения: если мы добавим опцию для переключения между core-js @ 2 и core-js @ 3, обе версии пакета должны быть включены в ваш комплект По этой причине мы решили отказаться от него: теперь вы должны загрузить core-js для полифилов и регенератор-время выполнения / время выполнения, если вы преобразуете генераторы:

Поскольку вы используете 7.4.3 версию babel, @babel/polyfill может работать не так, как ожидалось. Вместо этого, пожалуйста, добавьте core-js и regenerator-runtime вручную. Цитирование из core-js3 релиз объявление :

Instead of

import "@babel/polyfill";

you should use those 2 lines:

import "core-js/stable";
import "regenerator-runtime/runtime";

Don't forget install those dependencies directly!

npm i --save core-js regenerator-runtime
0 голосов
/ 14 мая 2019

Я нашел возможный ответ.Чтобы устранить эту ошибку, вы можете понизить версию core-js до 2.5.7.В этой версии создается правильная структура каталогов с отдельными папками ES6 и ES7.

Чтобы понизить версию, просто запустите:

npm i -S core-js@2.5.7

...