为什么Angular 5中的错误为:没有导出的成员'OpaqueToken'。

问题描述 投票:2回答:5

我有一个Angular 4应用程序,我正在升级到Angular 5。

我收到以下错误。

src / app / application / services / generated / variables.ts(1,10)中的错误:错误TS2305:模块'“.... / node_modules / @ angular / core / core”'没有导出的成员'OpaqueToken'。

代码段是:

import { OpaqueToken } from '@angular/core';

export const BASE_PATH = new OpaqueToken('basePath');
export const COLLECTION_FORMATS = {
    'csv': ',',
    'tsv': '   ',
    'ssv': ' ',
    'pipes': '|'
}

是被swagger editor生成此代码。

angular angular5 swagger-2.0 swagger-codegen
5个回答
2
投票

该OpaqueToken得到了清除。您必须使用InjectionToken。我面临着同样的问题。此刻的“最佳”的解决方案是每一个代码生成编译后替换标记。但那不是长久之计。

请有助于这个问题:https://github.com/swagger-api/swagger-codegen/issues/7324


2
投票

包括在的package.json文件folling

"@angular/flex-layout": "^2.0.0-beta.12"

尝试删除node_modules文件夹,删除package.json文件,然后运行以下命令,希望此问题得到解决

npm安装

请参阅此问题下面的链接https://github.com/angular/flex-layout/issues/494#issuecomment-343355178


1
投票

请参阅https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716

如果您想使用Angular 5,则需要使用支持版本切换的swagger-codegen版本。

这次最稳定的版本是2.3.0

您可以将(对于自定义配置)ngVersion定义为您想要的任何版本。只要semVer高于4.0,它就会生成注入令牌而不是OpaqueToken。


0
投票

这发生在我升级到角度5.2.0时。我最终不得不做以下事情:

编辑package.json:不得不改变我的@angular/compiler-cli版本。在我的情况下,我不得不把它带回到5.2.0,因为它以某种方式达到5.2.10。

删除了node_modules目录。

冉:npm install

安装:npm install @angular/flex-layout


0
投票

我有当我更新的角4〜5这个错误

我通过更改package.json文件修复了这个问题

“@ agm / core”:“1.0.0-beta.1”改为“@ agm / core”:“1.0.0-beta.5”

运行npm更新后

© www.soinside.com 2019 - 2024. All rights reserved.