我有一个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生成此代码。
该OpaqueToken得到了清除。您必须使用InjectionToken。我面临着同样的问题。此刻的“最佳”的解决方案是每一个代码生成编译后替换标记。但那不是长久之计。
请有助于这个问题:https://github.com/swagger-api/swagger-codegen/issues/7324
包括在的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
请参阅https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716
如果您想使用Angular 5,则需要使用支持版本切换的swagger-codegen版本。
这次最稳定的版本是2.3.0
您可以将(对于自定义配置)ngVersion定义为您想要的任何版本。只要semVer高于4.0,它就会生成注入令牌而不是OpaqueToken。
这发生在我升级到角度5.2.0时。我最终不得不做以下事情:
编辑package.json
:不得不改变我的@angular/compiler-cli
版本。在我的情况下,我不得不把它带回到5.2.0,因为它以某种方式达到5.2.10。
删除了node_modules目录。
冉:npm install
安装:npm install @angular/flex-layout
。
我有当我更新的角4〜5这个错误
我通过更改package.json文件修复了这个问题
“@ agm / core”:“1.0.0-beta.1”改为“@ agm / core”:“1.0.0-beta.5”
运行npm更新后