Babel useBuiltIns: 'usage', ошибка core- js 3 - PullRequest
0 голосов
/ 29 мая 2020

Я недавно начал работать с Webpack, и у меня возникла ошибка при сборке, связанной с моими настройками Babel и Core js (v3).

Я получаю следующую ошибку: Модуль не найдено: Ошибка: не удается разрешить 'core-js / modules / es.string.replace' в 'C: \ path \' @ file.jsx

Это в проекте React, и функция, которую я пытаюсь использовать, находится в одном из моих компонентов jsx.

Мой пакет. json выглядит так:

    "devDependencies": {
        "@babel/cli": "^7.8.4",
        "@babel/core": "^7.9.6",
        "@babel/plugin-proposal-class-properties": "^7.8.3",
        "@babel/preset-env": "^7.9.6",
        "@babel/preset-react": "^7.9.4",
        "@babel/preset-typescript": "^7.9.0",
        "@babel/runtime-corejs3": "^7.10.1",
        "autoprefixer": "^9.8.0",
        "babel-loader": "^8.1.0",
        "core-js": "^3.6.5",
        "css-loader": "^3.5.3",
        "cssnano": "^4.1.10",
        "less-loader": "^6.1.0",
        "mini-css-extract-plugin": "^0.9.0",
        "node-sass": "^4.14.1",
        "optimize-css-assets-webpack-plugin": "^5.0.3",
        "postcss-loader": "^3.0.0",
        "resolve-url-loader": "^3.1.1",
        "sass-loader": "^8.0.2",
        "terser-webpack-plugin": "^3.0.1",
        "webpack": "^4.43.0",
        "webpack-cli": "^3.3.11",
        "webpack-manifest-plugin": "^2.2.0",
        "webpack-merge": "^4.2.2"
    },
    "dependencies": {
        "@babel/polyfill": "^7.8.7",
        "clean-webpack-plugin": "^3.0.0",
        "react": "^16.13.1",
        "react-dom": "^16.13.1",
        "regenerator-runtime": "^0.13.5"
    }

И мои настройки babel выглядят так:

    test: /(\.jsx|\.js|\.ts|\.tsx)$/,
        exclude: /(node_modules)/,
        use: {
            loader: 'babel-loader',
            options: {
                cacheDirectory: true,
                sourceType: 'unambiguous',
                presets: [
                    [
                        '@babel/preset-env', {
                            modules: false,
                            corejs:  {
                                version: 3.6,
                                proposals: true
                            },
                            useBuiltIns: 'usage',
                            targets: {
                                browsers: browserList,
                            },
                        }
                    ],
                    '@babel/preset-typescript',
                    '@babel/preset-react'
                ],
                plugins: [
                    '@babel/plugin-proposal-class-properties'
                ],
            },
        },

В ходе своих поисков я обнаружил большое количество людей, страдающих подобной проблемой, но я еще не смог найти решение проблемы.

1 Ответ

0 голосов
/ 01 июня 2020

Через пару дней поиска ответа на эту проблему я наконец наткнулся на ответ на этот пост о переполнении стека: { ссылка } - это была моя точная проблема. Перефразируя здесь ответ для всех, кто сталкивается с этой проблемой:

Моя файловая структура была невероятно сложной - и файлы сценариев, которые передавались, выходили далеко за рамки моей настройки пакета.

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

module.exports = {  
    resolve: {
      modules: [
        path.resolve(__dirname, "node_modules")
      ],
  ...
...