错误:无法解析 '\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models 中的 'core-js/es7/re

Posted

技术标签:

【中文标题】错误:无法解析 \'\\node_modules\\@angular-devkit\\build-angular\\src\\angular-cli-files\\models 中的 \'core-js/es7/reflect\'【英文标题】:Error: Can't resolve 'core-js/es7/reflect' in '\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models错误:无法解析 '\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models 中的 'core-js/es7/reflect' 【发布时间】:2019-08-19 07:15:15 【问题描述】:

更新到 Angular 7.3.6 后,我在 ng serve 上收到以下错误:

错误 ./node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/jit-polyfills.js 未找到模块:错误:无法解析“core-js/es7/reflect” '\node_modules@angular-devkit\build-angular\src\angular-cli-files\models'

这是我的 package.json 依赖项:


  "name": "frontend",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": 
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  ,
  "private": true,
  "dependencies": 
    "@angular/animations": "^7.2.11",
    "@angular/cdk": "^7.3.6",
    "@angular/common": "^7.2.11",
    "@angular/compiler": "^7.2.11",
    "@angular/core": "^7.2.11",
    "@angular/flex-layout": "^7.0.0-beta.24",
    "@angular/forms": "^7.2.11",
    "@angular/http": "^7.2.11",
    "@angular/material": "^7.3.6",
    "@angular/platform-browser": "^7.2.11",
    "@angular/platform-browser-dynamic": "^7.2.11",
    "@angular/router": "^7.2.11",
    "adm-zip": "^0.4.13",
    "core-js": "^2.6.5",
    "hammerjs": "^2.0.8",
    "rxjs": "^6.4.0",
    "rxjs-compat": "^6.0.0-rc.0",
    "tslib": "^1.9.3",
    "zone.js": "^0.9.0"
  ,
  "devDependencies": 
    "@angular-devkit/build-angular": "^0.13.7",
    "@angular/cli": "^7.3.7",
    "@angular/compiler-cli": "^7.2.11",
    "@angular/language-service": "^7.2.11",
    "@types/jasmine": "~3.3.12",
    "@types/jasminewd2": "~2.0.6",
    "@types/node": "~11.12.0",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.3.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.0.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^2.0.5",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "^6.0.0",
    "ts-node": "~8.0.3",
    "tslint": "~5.14.0",
    "typescript": "3.1.6"
  

【问题讨论】:

在运行ng serve之前,您是否清理了您的node_modules、节点缓存并尝试了npm install 是的,我做到了,但同样的错误不断出现,我不知道还能做什么。您还有其他建议吗? 你应该安装core-js@2.5.x 是的,它成功了!谢谢 截至 2019 年 7 月 3 日,使用 Angular-CLI 8.0.6 和 Angular 8.1.0,上述错误将不再发生在 NEWLY GENERATED Angular 应用程序上,因为有问题/src/polyfills.ts 中不再生成导入。对于较旧的 Angular 应用程序,我建议通过以下方式生成一个临时 Angular 应用程序: ``` ng new aaTemplate --skip-tests --skip-install ``` 将新生成的 aaTemplate\src\polyfills.ts 与旧应用程序的 polyfill 进行比较。 ts,你会明白我在说什么。 【参考方案1】:

我通过删除路径中“es”末尾的数字来解决问题,以响应Module not found: Error: Can't resolve 'core-js/es7/reflect

【讨论】:

【参考方案2】:

就我而言,我只是改变了 -->

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

import 'core-js/es/reflect';

它奏效了..

【讨论】:

【参考方案3】:

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

要解决此错误,您可以将 core-js 版本降级到 2.5.7。此版本生成正确的目录结构,具有单独的 ES6 和 ES7 文件夹。

要降级版本,只需运行:

npm i -S core-js@2.5.7

【讨论】:

【参考方案4】:

对于 Angular 7

package.json 移除:

"core-js": "3.6.5",

因为它是 Angular 包的一部分。

【讨论】:

【参考方案5】:

对于 Angular 最新版本(当前 -> 9),

兼容的core-js版本是"core-js": "~2.5.0"

步骤 1) 删除节点模块。

步骤 2) 在 package.json 文件中,在依赖对象中写入 "core-js": "~2.5.0"。

步骤 3) npm 安装

然后它会很好地工作

【讨论】:

【参考方案6】:

删除路径中'es' 末尾的数字,例如'core-js/es/reflect' 也适用于我。

对于 EX:import 'core-js/es7/reflect'; 已更改为 import 'core-js/es/reflect';

【讨论】:

你能再解释一下吗? 您好 Dieter,问题是您在错误的文件夹中寻找“反射”模块。 1-在您的 src 文件夹中打开“polyfills.ts”。 2 - 找到像“import 'core-js/es7/reflect';”这样的行。对我来说这里是 7,在你的情况下它可以是别的东西。 3-像这样删除7:“import'core-js/es/reflect';”它应该可以工作。【参考方案7】:

如果您想使用 3.0 版,可以将路径添加到您的 tsconfig.json 文件。


    "compilerOptions": 
        ...
        "paths": 
            "core-js/es7/reflect": [
                "node_modules/core-js/proposals/reflect-metadata"
            ]
        
    

注意:您需要检查node_modules/core-js/proposals/reflect-metadata 相对路径并在项目结构中根据需要进行更正。

【讨论】:

您好,我在 gh erro 报告中也看到了这一点,但未能成功,只是找到了相同的模块未找到:错误:无法解析 'core-js/es7/反映'错误....你的工作吗? 对我来说是这样的:“paths”:“core-js/es7/reflect”:[“../node_modules/core-js/proposals/reflect-metadata”],“core- js/es6/*": ["../node_modules/core-js/es/*"] , Ran ncu 将我所有的包更新到最新版本,然后使用上述内容,它对我有用。 我必须添加“baseUrl”:“。”让它工作。谢谢 mrapi amd Medeni baykal【参考方案8】:

对于 Angular 8 (source):

Angular CLI 8.0+ 直接管理所需的 Angular polyfill,项目不需要直接依赖 core-js(假设应用程序不手动包含额外的 core-js polyfill)。

我已经解决了:

从我的 package.json 依赖项中删除 core-js 从我的test.ts 中删除import 'core-js/es7/reflect';

【讨论】:

对于类似的问题,这可行,但我需要从我的polyfills.ts 中删除对core-js/es6,7/reflect 的引用【参考方案9】:

我通过在我的polyfills.ts 文件中添加此导入:import 'core-js/proposals/reflect-metadata'; 来修复它

/** Evergreen browsers require these. **/
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/proposals/reflect-metadata';

确保您拥有最新的 core-js 更新并且一切正常。

【讨论】:

【参考方案10】:

@medeni 的 tsconfig.json 解决方案有效,但在自己检查之前不要复制路径。对我来说它必须是:

"paths": 
  "core-js/es7/reflect": ["../node_modules/@angular-devkit/build-angular/node_modules/core-js/proposals/reflect-metadata"]

../ 是因为 tsconfig.json 被 src/tsconfig.app.json 或 src/tsconfig.spec.json 扩展,所以 /src 是工作目录。

注意:我使用的是 Angular CLI 8.1.0

【讨论】:

【参考方案11】:

core-js 3.0 版本有一些重大变化:

https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md

您应该在其中一个文件中找到与此类似的一行:import "core-js/es7/reflect";

改成这样:import "core-js/proposals/reflect-metadata";

【讨论】:

这对我来说非常有效 - 升级到 Angular 8 后开始出现错误,但您的解决方案有效。 在所有答案中,这对我(Angular 11)来说是解决方案。谢谢你,@Joffrey【参考方案12】:

您应该安装包含此文件/模块的core-js@2.5.x。见preset-env docs。

【讨论】:

npm install --save core-js@^2.5.0,为我工作,谢谢 也适合我!! 我将 package.json 中的版本降低为“core-js”:“^2.5.4”,然后运行 ​​yarn,这对我有用。 工作!谢谢 确认 npm install --save core-js@^2.5.0 对我也有效

以上是关于错误:无法解析 '\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models 中的 'core-js/es7/re的主要内容,如果未能解决你的问题,请参考以下文章

解析错误代码 206:无法修改用户(解析服务器)

为啥我收到“无法解析 NSPredicate”错误

Pig 错误:无法解析查询

无法解析配置 ':classpath' 的所有工件。无法解析 com.android.tools.build:gradle:3.5.3。显示错误

并排配置错误,无法解析引用 mscorlib

GraphQLError:语法错误:无法解析意外字符“;” [关闭]