Модуль не найден: ошибка: не удается разрешить 'core-js / es6' - PullRequest
34 голосов
/ 23 марта 2019

У меня проблема с процессом сборки относительно моего приложения React.

Я всегда получаю следующую ошибку:

Модуль не найден: Ошибка: невозможно разрешить 'core-js / es6'

если я использую это в polyfill.js:

import 'core-js / es6';

Это мой пакет. Json:

{
  "name": "test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "private": true,
  "devDependencies": {
    "@babel/core": "^7.4.0",
    "@babel/preset-env": "^7.4.2",
    "@babel/preset-react": "^7.0.0",
    "@babel/runtime": "^7.4.2",
    "babel-loader": "^8.0.5",
    "babel-preset-es2015": "^6.24.1",
    "copy-webpack-plugin": "^5.0.2",
    "css-hot-loader": "^1.4.4",
    "eslint": "5.15.3",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-loader": "^2.1.2",
    "eslint-plugin-import": "2.16.0",
    "eslint-plugin-jsx-a11y": "6.2.1",
    "eslint-plugin-react": "7.12.4",
    "file-loader": "^3.0.1",
    "node-sass": "^4.11.0",
    "prettier": "^1.16.4",
    "react-hot-loader": "4.8.0",
    "sass-loader": "^7.1.0",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.3.0",
    "webpack-dev-server": "^3.2.1"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "core-js": "^3.0.0",
    "prop-types": "^15.7.2",
    "react": "^16.8.5",
    "react-dom": "^16.8.5",
    "react-redux": "^6.0.1",
    "react-string-replace": "^0.4.1",
    "redux": "^4.0.1",
    "slick-carousel": "^1.8.1"
  },
  "scripts": {
    "dev": "webpack-dev-server --hot",
    "build": "webpack --colors --profile --progress --env.mode production",
    "lint": "eslint ./src/ --ext .js,.jsx"
  }
}

Может кто-нибудь помочь здесь?

Ответы [ 5 ]

41 голосов
/ 17 мая 2019

Импортированы изменения для core-js версии 3.0.1 - например,

import 'core-js/es6/array'; и import 'core-js/es7/array';

теперь могут быть предоставлены просто с помощью следующих

import 'core-js/es/array';

, если вы предпочитаете не вводить весь core-js

36 голосов
/ 23 марта 2019

Я нашел возможный ответ.У вас есть core-js версия 3.0, и в этой версии нет отдельных папок для ES6 и ES7 ;Вот почему приложение не может найти правильные пути.

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

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

npm i -S core-js@2.5.7

Inв моем случае с Angular это работает нормально.

3 голосов
/ 03 июня 2019

Конечно, у меня была похожая проблема, и простой

npm uninstall @babel/polyfill --save &&
npm install @babel/polyfill --save

помог мне.

1 голос
/ 24 марта 2019

Завершено, чтобы иметь файл с именем polyfill.js в projectpath \ src \ polyfill.js Этот файл содержит только эту строку: import 'core-js'; это заполняет не только es-6, но и является правильным способом использования core-js начиная с версии 3.0.0.

Я добавил polyfill.js в свой атрибут записи в файле веб-пакета следующим образом:

entry: ['./src/main.scss', './src/polyfill.js', './src/main.jsx']

Отлично работает.

Я также нашел больше информации здесь: https://github.com/zloirock/core-js/issues/184

Автор библиотеки ( zloirock ) утверждает:

ES6 меняет поведение почти всех функций, добавленных в ES5, поэтому core-js / es6 точка входа включает в себя почти все из них. Кроме того, как вы написали, это требуется для исправления неработающих реализаций браузера.

(Цитата https://github.com/zloirock/core-js/issues/184 от zloirock)

Так что я думаю import 'core-js'; просто отлично.

0 голосов
/ 18 июля 2019

После перехода на Angular 8 'core-js / es6' или 'core-js / es7' не будут работать.

Вы должны просто заменить import 'core-js / es /'

Например импортировать 'core-js / es6 / symbol' для импорта 'core-js / es / symbol'

Это будет работать правильно.

...