모듈을 찾을 수 없음 : 오류 : 'core-js / es6'을 해결할 수 없습니다.


112

React 앱과 관련하여 빌드 프로세스에 문제가 있습니다.

항상 다음과 같은 오류가 발생합니다.

모듈을 찾을 수 없음 : 오류 : 'core-js / es6'을 해결할 수 없습니다.

polyfill.js에서 이것을 사용하면 :

import 'core-js / es6';

그것은 내 package.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"
  }
}

누군가 여기서 도울 수 있습니까?


2
업그레이드 버전 후 각도 앱에서 동일한 오류가 발생합니다. 이 폴더 (core-js / es6)가 노드 모듈에 있는지 확인하십시오.
Kamil Naja

@KamilNaja 나는 같은 문제에 직면하고 있으며 폴더 (core-js / es6)가 내 node_modules에 존재하지 않고 내 node_modules에 (core-js / es)가 있습니다. 무엇을해야합니까?
Kunal Tyagi

답변:


153

core-js 버전 3.0.1의 가져 오기가 변경되었습니다.

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

이제 다음과 같이 간단히 제공 할 수 있습니다.

import 'core-js/es/array';

core-js 전체를 가져 오지 않으려면


18
각도를 8로 마이그레이션 한 후 오류가 발생했지만 솔루션이 해결했습니다.
Nakres

8
이 감사 각도 8 : 마이그레이션을위한 솔루션입니다
크리스 보이드

코드에로 시작하는 import 'core-js/...것이 없으므로 무엇을 어디에서 변경해야합니까? VueJS 2 사용
1 권

@volumeone은 터미널에서 'npm i core-js'를 실행합니다.
Shivam Shukla

1
@ShivamShukla 감사하지만 작동하려면 2.6.11로 다운 그레이드해야했습니다. mini-css-extract-plugin과 core-js 3 사이에 버그가 있습니다
볼륨 1

98

가능한 답을 찾았습니다. 당신은 코어 JS 버전 3.0,이 버전에 대한 별도의 폴더가없는 ES6ES7을 ; 이것이 응용 프로그램이 올바른 경로를 찾을 수없는 이유입니다.

이 오류를 해결하려면 core-js 버전을 2.5.7로 다운 그레이드 할 수 있습니다 . 이 버전은 별도의 ES6ES7 폴더를 사용 하여 올바른 카탈로그 구조를 생성합니다 .

버전을 다운 그레이드하려면 다음을 실행하십시오.

npm i -S core-js@2.5.7

제 경우에는 Angular를 사용하면 정상적으로 작동합니다.


1
고마워요, 그것은 적어도 해결책입니다. 또한 다운 그레이드없이 버전 3.0을 사용하는 솔루션을 찾았습니다. 게시
예정

생명의 은인, 진지하게. 감사합니다.
IRCraziestTaxi

1
다운 그레이드가 다른 모든 것을 망가 뜨리지 않는 이유와 새로운 형식으로 업데이트하지 않는 이유를 설명해 주시겠습니까? 당신은 이것이 사람들에게 잘 작동하고 있음을 시사하는 많은 찬성 투표를 가지고 있지만 확실히 이것은 좋은 장기적인 해결책은 아닙니다.
Simon_Weaver

따라서 완벽한 솔루션은 core-js를 사용하여 최신 버전을 사용할 때마다 가져 오기를 업그레이드하는 것입니다. 안타깝게도이 종속성이 다른 라이브러리에서 사용되는 경우이 솔루션은 불가능할 수 있으며 해결 방법이 필요합니다.
Kamil Naja

4
-1 이것은 메시지를 없애기위한 반창고이며, 패키지를 다운 그레이드하는 것은 좋은 습관이 아닙니다. 독자는 수입품을 수정하는 것이 훨씬 낫습니다. 뿐만 아니라 그것이 단지 간단 하지 더 간단한 경우, 그것은 훨씬 더 나은 방법입니다 : stackoverflow.com/a/56186570/610573
크리스 베이커

42

polyfills.ts 및 polyfills.ts에서 모든 "es6"및 "es7"을 "es"로 변경합니다 (선택 사항).

  • 에서: import 'core-js/es6/symbol';
  • 에: import 'core-js/es/symbol';

21

마이그레이션 이후에 Angular8 , core-js/es6또는 core-js/es7작동하지 않습니다.

당신은 단순히 수입을 대체해야 core-js/es/

예를 들어.

import 'core-js/es6/symbol'  

import 'core-js/es/symbol'

이것은 제대로 작동합니다.


Angular 8에서 나를 위해 작동합니다!
ihimv

이것은 나를 위해 작동하지만 여전히 매우 혼란 스럽습니다. 이 새로운 단일 가져 오기를 기대하고 Angular 소스와 상호 참조했습니다. 심지어 'hello world Ivy'예제에서도 여전히 /es6경로를 보여줍니다. github.com/angular/angular/blob/master/integration/… 왜 그렇게하는지 아십니까?
Simon_Weaver


4

물론, 비슷한 문제가 있었고 간단한

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

나를 위해 트릭을했다.

그러나 @ babel / polyfill의 사용은 더 이상 사용되지 않으므로 ( 이 주석 에 따라 ) 오래된 패키지가 설치되어 있다고 생각하거나 다른 모든 것이 실패한 경우에만 시도하십시오.


1
야 넌 생명의 은인이야. 그것은 나를 미치게 만들었다.
DiederikEEn

4
의 사용 @babel/polyfill은 더 이상 사용되지 않습니다.
신경 전달 물질

3

tsconfig.json에서 "target": "es2015"를 "target": "es5"로 변경하십시오.

Angular 8.2.XX로 나를 위해 일하십시오.

IE11 및 Edge에서 테스트 됨


2

라는 파일 polyfill.js을 위해 종단에서 projectpath \ SRC \ polyfill.js 파일 만이 줄을 포함 : 수입 '코어 JS를'; 이 polyfill은 es-6뿐만 아니라 버전 3.0.0부터 core-js를 사용하는 올바른 방법입니다.

다음 과 같이 내 webpack-file 항목 속성에 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 진입 점에는 거의 모든 기능이 포함됩니다. 또한 작성한대로 깨진 브라우저 구현을 수정하는 데 필요합니다.

( zloirock에서 인용 https://github.com/zloirock/core-js/issues/184 )

그래서 저는 import 'core-js' 라고 생각합니다 . 괜찮습니다.


가져올 모듈 및 네임 스페이스에 대한 추가 정보는 core-js 현재 문서를 확인하십시오 .
Kamafeather

이것을 정답으로 표시 할 수 있습니까? 특히 거의 1 년 후에 더 정확하다고 생각합니다.
doz87


0

Polyfills.ts 파일 변경

polyfills.ts 및 polyfills.ts에서 모든 "es6"및 "es7"을 "es"로 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.