Angular 7:@Angular/core/core没有导出成员';OpaqueToken';

Angular 7:@Angular/core/core没有导出成员';OpaqueToken';,angular,Angular,在刚从Angular创建的全新项目的构建中获取此错误消息: ERROR in node_modules/@ngrx/store/src/ng2.d.ts(1,10): error TS2305: Module '"../../../@angular/core/core"' has no exported member 'OpaqueToken'. 我做了一系列的搜索,发现了一些不是我的问题。以下是一些: 1) ,不使用flex布局 2) ,无弹性布局,无年度股东大会,其他问题 3) ,尝试将n

在刚从Angular创建的全新项目的构建中获取此错误消息:

ERROR in node_modules/@ngrx/store/src/ng2.d.ts(1,10): error TS2305: Module '"../../../@angular/core/core"' has no exported member 'OpaqueToken'.
我做了一系列的搜索,发现了一些不是我的问题。以下是一些:

1) ,不使用flex布局

2) ,无弹性布局,无年度股东大会,其他问题

3) ,尝试将ngrx升级至最新版本,但无效

这是一个简单的应用程序,它使用http请求并将结果放入存储,然后从存储读取该结果

我没有直接使用OpaqueToken。以下是my package.json dep部分:

  "dependencies": {
    "@angular/animations": "~7.2.0",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/forms": "~7.2.0",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "@ngrx/core": "github:ngrx/core",
    "@ngrx/store": "github:ngrx/store",
    "core-js": "^2.5.4",
    "cors": "^2.8.5",
    "ngrx": "^2.0.1",
    "rxjs": "^6.4.0",
    "rxjs-compat": "^6.4.0",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.13.0",
    "@angular/cli": "~7.3.1",
    "@angular/compiler-cli": "~7.2.0",
    "@angular/language-service": "~7.2.0",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.1.1",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.2.2"
  }
}

你知道什么是不相容的吗?我对Angular还是相当陌生,而且似乎太频繁了,仅仅从Angular创建一个新的应用程序就必须修复依赖关系。

我不确定github:ngrx/store到底解决了什么问题,但它看起来像是最新的“稳定”版本(当我去是2.X,根据
ngrx/store
中的
package.json
,2.X版本仅与Angular 2.X和Angular 4.X兼容,您使用的是Angular 7.X

有一个4.X版本的
ngrx/store
,它的目标是角度为8.X的,所以也许你应该试试这个

同样,Angular也会出现这种情况,因为组件通常会将Angular列为对等依赖项(这是有充分理由的)。这意味着,即使您的Angular版本无效,在安装时也只会收到警告,而不是错误

编辑:还有,不知道为什么会被否决,这个问题对我来说很好。别担心。

检查我没有找到的角度标记
OpaqueToken
。我认为它以前是不推荐的,现在从
@angular/core
中删除了。 角度跟踪完全支持
InjectionToken

解决方案是将
OpaqueToken
替换为
InjectionToken

附言。 您还可以关注
NgProbeToken
(这取决于您的需要):


建议:考虑删除<代码> NoDEYMeals/*<代码>和所有子文件夹,尝试一个新的<代码> NPM安装< /代码>。@ PaulsM4我已经尝试过了,但是从那时起我已经做了几次修改,所以我再次尝试。同样的结果。@Thom那么这个问题有什么解决方案吗?就是这样,谢谢。我想知道为什么它安装了如此破旧的ngrx/store版本。我把它改成了:“@ngrx/store”:“^4.1.1”,啊,好像有什么名字的变化。2.X之后版本的NPM模块
@ngrx/store
存储在Github repo中:
InjectionToken

Creates a token that can be used in a DI Provider.
NgProbeToken

A token for third-party components that can register themselves with NgProbe.