Npm 未找到模块:错误:Can';t解决';核心js/es6';

Npm 未找到模块:错误:Can';t解决';核心js/es6';,npm,build,yarnpkg,package.json,Npm,Build,Yarnpkg,Package.json,我的React应用程序的构建过程有问题 我总是遇到以下错误: 未找到模块:错误:无法解析“core js/es6” 如果我在polyfill.js中使用此选项: 导入“核心js/es6” 这是我的package.json: { “名称”:“测试”, “版本”:“1.0.0”, “main”:“index.js”, “许可证”:“麻省理工学院”, “私人”:没错, “依赖性”:{ “@babel/core”:“^7.4.0”, “@babel/preset env”:“^7.4.2”, “@ba

我的React应用程序的构建过程有问题

我总是遇到以下错误:

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

如果我在polyfill.js中使用此选项:

导入“核心js/es6”

这是我的package.json:

{
“名称”:“测试”,
“版本”:“1.0.0”,
“main”:“index.js”,
“许可证”:“麻省理工学院”,
“私人”:没错,
“依赖性”:{
“@babel/core”:“^7.4.0”,
“@babel/preset env”:“^7.4.2”,
“@babel/preset react”:“^7.0.0”,
“@babel/runtime”:“^7.4.2”,
“巴别塔加载器”:“^8.0.5”,
“babel-preset-es2015”:“^6.24.1”,
“复制网页包插件”:“^5.0.2”,
“css热加载程序”:“^1.4.4”,
“eslint”:“5.15.3”,
“eslint配置airbnb”:“^17.1.0”,
“eslint加载程序”:“^2.1.2”,
“eslint插件导入”:“2.16.0”,
“eslint-plugin-jsx-a11y”:“6.2.1”,
“eslint插件反应”:“7.12.4”,
“文件加载器”:“^3.0.1”,
“节点sass”:“^4.11.0”,
“更漂亮”:“^1.16.4”,
“反应热加载程序”:“4.8.0”,
“sass加载程序”:“^7.1.0”,
“网页包”:“^4.29.6”,
“webpack cli”:“^3.3.0”,
网页包开发服务器“^3.2.1”
},
“依赖项”:{
“axios”:“^0.18.0”,
“核心js”:“^3.0.0”,
“道具类型”:“^15.7.2”,
“反应”:“^16.8.5”,
“react dom”:“^16.8.5”,
“react redux”:“^6.0.1”,
“反应字符串替换”:“^0.4.1”,
“redux”:“^4.0.1”,
“光滑转盘”:“^1.8.1”
},
“脚本”:{
“开发人员”:“网页包开发人员服务器--热”,
“构建”:“网页包--颜色--配置文件--进度--环境模式生产”,
“lint”:“eslint./src/--ext.js、.jsx”
}

}
我找到了可能的答案。你有核心JS3.0版,这个版本没有ES6和ES7的单独文件夹;这就是应用程序无法找到正确路径的原因

要解决此错误,可以将CoreJS版本降级为2.5.7。此版本使用单独的ES6和ES7文件夹生成正确的目录结构

要降级版本,只需运行:

npm i -S core-js@2.5.7

在我的例子中,使用Angular可以正常工作。

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

我将polyfill.js添加到我的webpack文件条目属性中,如下所示:

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

工作完美

我还在这里找到了更多信息:

图书馆作者(zloirock)声称:

ES6改变了ES5中添加的几乎所有功能的行为,因此核心js/ES6 入口点包括几乎所有这些。而且,正如你写的,它是 修复损坏的浏览器实现所需

(引自zloirock)


所以我认为导入'core js'很好。

核心js版本3.0.1的导入已更改-例如

导入'core js/es6/array'
导入'core js/es7/array'

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

导入'core js/es/array'


如果您不想引入整个core js

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

npm uninstall @babel/polyfill --save &&
npm install @babel/polyfill --save
他为我做了这件事


然而,@babel/polyfill的使用是不推荐的(根据),所以只有在您认为您安装了旧的软件包或者其他所有软件包都失败的情况下,才可以尝试使用它。

迁移到Angular8后,
core js/es6
core js/es7
将不起作用

您只需替换import
core js/es/

例如

import 'core-js/es6/symbol'  

这将正常工作。

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

  • 来自:
    import'core js/es6/symbol'
  • 至:
    import'core js/es/symbol'
只需将tsconfig.json中的“target”:“es2015”更改为“target”:“es5”

使用Angular 8.2.XX为我工作


在IE11和Edge上测试

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

presets: [
  [
    "@babel/preset-env", {
      "useBuiltIns": "usage",
      "corejs": 3
    }
  ]
],
有关更多详细信息,请参阅:

polyfills.ts中的所有
es6
es7
更改为
es

例如:

导入'core js/es6/reflect';
变成

导入“核心js/es/reflect”;

升级版本后angular应用程序中出现相同错误。检查,如果此文件夹(core js/es6)存在于您的节点模块中。@KamilNaja我面临相同的问题,并且该文件夹(core js/es6)不存在于我的节点模块中,则我的节点模块中存在(core js/es)。怎么办?谢谢,至少这是个解决办法。我还找到了使用3.0版而不降级的解决方案。真的,我会救你的。谢谢。你能解释一下降级是如何不破坏其他一切的吗?你为什么不更新到一个新的格式?你已经有了大量的投票,这表明这对人们来说很有效,但这肯定不是一个好的长期解决方案。因此,完美的解决方案是在你使用core js使用最新版本时升级你的导入。不幸的是,当这个依赖性被用在其他库中时,这个解决方案是不可能的,你需要使用解决方法。- 1这是一个能消除消息的创可贴,降低你的软件包并不是一个很好的做法。读者在更正他们的导入内容时会过得更好。这不仅是简单的,如果不是更简单的话,也是更好的做法:有关要导入的模块和名称空间的更多信息,请检查。是否可以将此标记为正确答案,我认为这更准确,尤其是在将近一年后。迁移到8后,我得到了错误,但您的解决方案
presets: [
  [
    "@babel/preset-env", {
      "useBuiltIns": "usage",
      "corejs": 3
    }
  ]
],