找不到模块:错误:无法解析“ core-js / es6”

Gut*_*typ 64 build npm package.json yarnpkg

我的React应用程序的构建过程出现问题。

我总是收到以下错误:

找不到模块:错误:无法解析“ core-js / es6”

如果我在polyfill.js中使用它:

导入'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"
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Lea*_*tal 93

对于core-js版本3.0.1的导入已更改-例如

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

现在可以通过以下方式简单地提供

import 'core-js/es/array';

如果您不希望引入整个core-js

  • 将angular迁移到8后,我得到了错误,但您的解决方案已解决。 (14认同)
  • 这是迁移到角度8的解决方案:)谢谢 (4认同)
  • @ShivamShukla 谢谢,但我必须降级到 2.6.11 才能正常工作。mini-css-extract-plugin 和 core-js 3 之间存在错误 (2认同)

Kam*_*aja 65

我找到了可能的答案。您有core-js版本3.0,此版本没有用于ES6ES7的单独文件夹;这就是应用程序找不到正确路径的原因。

要解决此错误,您可以将core-js版本降级为2.5.7。此版本产生正确的目录结构,带有单独的ES6ES7文件夹。

要降级版本,只需运行:

npm i -S core-js@2.5.7
Run Code Online (Sandbox Code Playgroud)

就我而言,使用Angular可以正常工作。

  • -1 这是摆脱消息的创可贴,降级你的软件包不是一个好的做法。读者更正他们的导入会更好。它不仅*同样简单*(如果不是更简单),也是更好的做法:/sf/answers/3933059931/ (4认同)
  • 您能否解释一下降级如何不会破坏其他所有内容以及为什么您不直接更新到新格式?你得到了大量的支持,这表明这对人们来说效果很好,但肯定这不是一个好的长期解决方案。 (3认同)

小智 18

在polyfills.ts和polyfills.ts中将所有“ es6”和“ es7”更改为“ es”(可选)。

  • 从: import 'core-js/es6/symbol';
  • 至: import 'core-js/es/symbol';


Bha*_*tel 11

迁移到Angular 8后,“ core-js / es6”或“ core-js / es7”将不起作用。

您只需替换导入'core-js / es /'

对于前。导入'core-js / es6 / symbol'导入'core-js / es / symbol'

这将正常工作。


小智 10

更改您的 Polyfills.ts 文件

将所有es6和更改es7es您的polyfills.ts

例子:

import 'core-js/es6/reflect';
Run Code Online (Sandbox Code Playgroud)

变成

import 'core-js/es/reflect';
Run Code Online (Sandbox Code Playgroud)


RiZ*_*KiT 8

如果您使用@babel/preset-envand useBuiltIns,那么您只需要corejs: 3在 useBuiltIns 选项旁边添加,以指定要使用的版本,默认为corejs: 2.

presets: [
  [
    "@babel/preset-env", {
      "useBuiltIns": "usage",
      "corejs": 3
    }
  ]
],
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅: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


Rak*_*ski 6

今天(2022 年 4 月 13 日)在将core-js版本从 2 升级到 3 后,我尝试找到答案几个小时后,终于可以在更新我的版本后解决它babel.config.js并使其如下所示:

前:

presets: [ "@vue/app" ]
Run Code Online (Sandbox Code Playgroud)

后:

presets: [ [ "@vue/app", { useBuiltIns: "entry" } ] ]
Run Code Online (Sandbox Code Playgroud)

笔记

  1. 我在我的项目中使用Vue

  2. 我已经尝试了几乎所有有关的问题npm uninstall core-js并尝试再次重新安装它npm install core-js --savedelete node_modules, package-lock.json, and yarn-lock.json但仍然无法解决它

  3. core-js如果我使用此行降级版本,我可以解决它:npm install core-js@2.6.5但对于长期情况来说,这不是一个好的解决方案

  4. 此问题的解释:出现此问题的原因是core-js/es6版本 3 中的路径已更改为,core-js/es这就是为什么您的项目找不到它指向的目录的正确路径core-js/es6


Gut*_*typ 5

最终在projectpath\src\polyfill.js 中有一个名为polyfill.js的文件 该文件只包含这一行:import 'core-js'; 这个 polyfills 不仅是 es-6,而且是自 3.0.0 版以来使用 core-js 的正确方法。

我加入了polyfill.js像这样我的WebPack文件项属性:

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'; 很好。


ote*_*h47 5

当然,我有一个类似的问题和一个简单的

npm uninstall @babel/polyfill --save &&
npm install @babel/polyfill --save
Run Code Online (Sandbox Code Playgroud)

帮我解决了这个问题。

但是,不推荐使用@babel/polyfill(根据此评论),因此仅当您认为安装了较旧的软件包或其他所有方法都失败时才尝试使用此方法。

  • 不推荐使用“@babel/polyfill”。 (4认同)

jsp*_*sov 5

只需将 tsconfig.json 中的 "target": "es2015" 更改为 "target": "es5"。

使用 Angular 8.2.XX 为我工作

在 IE11 和 Edge 上测试