मॉड्यूल नहीं मिला: त्रुटि: 'core-js / es6' को हल नहीं कर सकता


112

मुझे अपने रिएक्ट ऐप के संबंध में अपनी निर्माण प्रक्रिया में समस्या हुई है।

मुझे हमेशा निम्न त्रुटि मिलती है:

मॉड्यूल नहीं मिला: त्रुटि: 'core-js / es6' को हल नहीं कर सकता

अगर मैं एक polyfill.js में इसका उपयोग करता हूं:

आयात 'कोर-जेएस / एस 6';

यह मेरा पैकेज है। संदेश:

{
  "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
उन्नयन संस्करण के बाद कोणीय एप्लिकेशन में एक ही त्रुटि। जांचें, यदि यह फ़ोल्डर (कोर-जेएस / एस 6) आपके नोड-मॉड्यूल में मौजूद है।
कामिल नाज़

@KamilNaja मैं एक ही समस्या का सामना कर रहा हूं और फ़ोल्डर (core-js / es6) मेरे नोड_मॉड्यूल में मौजूद नहीं है, मेरे नोड_मॉड्यूल में मेरे पास (core-js / es) है। क्या करें?
कुणाल त्यागी

जवाबों:


153

आयात कोर-जेएस संस्करण 3.0.1 के लिए बदल गए हैं - उदाहरण के लिए

import 'core-js/es6/array'; तथा import 'core-js/es7/array';

अब बस निम्नलिखित द्वारा प्रदान किया जा सकता है

import 'core-js/es/array';

अगर आप पूरे कोर-जेएस में नहीं लाना पसंद करेंगे


18
8 कोणीय में स्थानांतरित होने के बाद मुझे त्रुटि मिल रही थी लेकिन आपके समाधान ने इसे ठीक कर दिया।
नकेरेस

8
यह कोणीय 8 पर प्रवास का समाधान है :) धन्यवाद
क्रिश

मेरे पास मेरे कोड में कुछ भी नहीं है जो मुझे शुरू होता है import 'core-js/...इसलिए मुझे क्या बदलना चाहिए और कहां होना चाहिए? VueJS 2 का उपयोग
वॉल्यूम एक

@volumeone अपने टर्मिनल में 'npm i core-js' चलाते हैं।
शिवम शुक्ला

1
@ शिवम शुक्ला धन्यवाद, लेकिन मुझे काम करने के लिए इसे 2.6.11 तक डाउनग्रेड करना पड़ा। मिनी-सीएसएस-एक्सट्रैक्ट-प्लगइन और कोर-जेएस 3
वॉल्यूम के

98

मुझे संभव उत्तर मिल गया। आपके पास कोर-जेएस संस्करण 3.0 है, और इस संस्करण में ईएस 6 और ईएस 7 के लिए अलग-अलग फ़ोल्डर नहीं हैं ; इसलिए एप्लिकेशन को सही रास्ते नहीं मिल रहे हैं।

इस त्रुटि को हल करने के लिए, आप कोर-जेएस संस्करण को 2.5.7 पर डाउनग्रेड कर सकते हैं । यह संस्करण अलग ES6 और ES7 फ़ोल्डरों के साथ सही कैटलॉग संरचना तैयार करता है ।

संस्करण को डाउनग्रेड करने के लिए, बस चलाएं:

npm i -S core-js@2.5.7

मेरे मामले में, कोणीय के साथ, यह ठीक काम करता है।


1
धन्यवाद, यह कम से कम एक समाधान है। मुझे डाउनग्रेड के बिना संस्करण 3.0 का उपयोग करने का समाधान भी मिला। पोस्ट करेंगे
Gutelaunetyp

जीवन रक्षक, गंभीरता से। धन्यवाद।
IRCraziestTaxi

1
क्या आप समझा सकते हैं कि कैसे डाउनग्रेडिंग सब कुछ नहीं तोड़ता है और आप सिर्फ एक नए प्रारूप में अपडेट क्यों नहीं करेंगे? आपको एक टन तक की चपत लगी है जो बताती है कि यह लोगों के लिए अच्छा काम कर रहा है लेकिन निश्चित रूप से यह एक अच्छा दीर्घकालिक समाधान नहीं है।
साइमन_वेक

इसलिए, जब भी आप नए संस्करण का उपयोग करने के लिए कोर-जेएस का उपयोग करते हैं, तो सही समाधान आपके आयात को अपग्रेड करते हैं। दुर्भाग्य से, जब यह निर्भरता अन्य पुस्तकालय में उपयोग की जाती है, तो यह समाधान असंभव हो सकता है और आपको वर्कअराउंड का उपयोग करने की आवश्यकता है।
कामिल नाज़

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'

यह ठीक से काम करेगा।


मेरे लिए कोणीय 8 में काम करता है!
ihimv

यह मेरे लिए काम करता है लेकिन मैं अभी भी भ्रमित हूँ। मैं इस नए एकल आयात को देखने की उम्मीद कर रहा हूँ, और यहां तक ​​कि 'हैलो वर्ल्ड आइवी' उदाहरण अभी भी /es6पथ github.com/angular/angular/blob/master/integration/ पर कोई भी विचार है कि वे ऐसा कर रहे हैं?
साइमन_वेअर सेप


4

निश्चित रूप से, मेरे पास एक समान मुद्दा और एक सरल था

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

मेरे लिए चाल चली।

हालाँकि, @ babel / polyfill का उपयोग घटाया गया है ( इस टिप्पणी के अनुसार ) इसलिए केवल यह कोशिश करें कि यदि आपको लगता है कि आपके पास पुराने पैकेज स्थापित हैं या यदि अन्य सभी विफल हो जाते हैं।


1
यार तुम एक जीवन रक्षक हो। इसने मुझे पागल पागल कर दिया।
DiederikEEn

4
का उपयोग @babel/polyfillपदावनत किया जाता है।
न्यूरोट्रांसमीटर

3

बस "लक्ष्य": "es2015" को "लक्ष्य": "es5" को अपने tsconfig.json में बदलें।

मेरे लिए कोणीय 8.2.XX के साथ काम करें

IE11 और एज पर परीक्षण किया गया


2

एक फ़ाइल है जिसका नाम polyfill.js है, जिसमें projectpath \ src \ polyfill.js है। उस फ़ाइल में केवल यह पंक्ति है: 'core-js' आयात करें; यह पॉलीफ़िल न केवल es-6, बल्कि 3.0.0 संस्करण के बाद से कोर-जेएस का उपयोग करने का सही तरीका है।

मैंने अपने webpack- फ़ाइल प्रविष्टि विशेषता में polyfill.js को इस तरह जोड़ा :

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

अच्छी तरह से काम।

मुझे यहाँ कुछ और जानकारी भी मिली: https://github.com/zloirock/core-js/issues/184

पुस्तकालय लेखक ( zloirock ) का दावा है:

ईएस 6 में ईएस 5 में जोड़े गए व्यवहारों में बदलाव होता है, इसलिए कोर-जेएस / एस 6 एंट्री पॉइंट में लगभग सभी शामिल हैं। इसके अलावा, जैसा कि आपने लिखा है, यह टूटे हुए ब्राउज़र कार्यान्वयन को ठीक करने के लिए आवश्यक है।

(उद्धरण https://github.com/zloirock/core-js/issues/184 zloirock से)

इसलिए मुझे लगता है कि आयात 'कोर-जेएस'; बस ठीक है।


आयात करने के लिए मॉड्यूल और नेमस्पेस पर अतिरिक्त जानकारी के लिए, कोर-जेएस वर्तमान प्रलेखन की जांच करें ।
कामाफेदर

क्या इसे सही उत्तर के रूप में चिह्नित करना संभव है, मुझे लगता है कि यह विशेष रूप से लगभग एक साल बाद अधिक सटीक है।

1

यदि आप उपयोग करते हैं @babel/preset-envऔर useBuiltIns, तो आपको बस corejs: 3यूज़ करना है, उपयोग के बाद विकल्प, जो निर्दिष्ट करना है कि किस संस्करण का उपयोग करना है, डिफ़ॉल्ट है corejs: 2

presets: [
  [
    "@babel/preset-env", {
      "useBuiltIns": "usage",
      "corejs": 3
    }
  ]
],

अधिक जानकारी के लिए देखें: https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future .md # babelpreset-env


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.