我有一个Angular 4应用程序,我正在升级到Angular 5.
我收到以下错误。
src / app / application / services / generated / variables.ts(1,10)中的错误: 错误TS2305:模块 ' “.... / node_modules / @角/核心/核心”' 没有导出的成员'OpaqueToken'。
代码段是:
import { OpaqueToken } from '@angular/core';
export const BASE_PATH = new OpaqueToken('basePath');
export const COLLECTION_FORMATS = {
'csv': ',',
'tsv': ' ',
'ssv': ' ',
'pipes': '|'
}
此代码由swagger editor生成。
答案 0 :(得分:2)
OpaqueToken被删除了。您必须使用InjectionToken。 我面临同样的问题。 在片刻,最好的"解决方案是在每个代码生成之后替换令牌。但这不是一个永久的解决方案。
请为此问题做出贡献: https://github.com/swagger-api/swagger-codegen/issues/7324
答案 1 :(得分:2)
包括 package.json 文件
中的后续处理"@angular/flex-layout": "^2.0.0-beta.12"
尝试删除node_modules文件夹,删除package.json文件,然后运行以下命令,希望此问题得到解决
npm install
请参阅此问题的以下链接 https://github.com/angular/flex-layout/issues/494#issuecomment-343355178
答案 2 :(得分:1)
请看 https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716
如果您想使用Angular 5,则需要使用支持版本切换的swagger-codegen版本。
这次最低稳定版本是2.3.0
您可以将(对于自定义配置)ngVersion定义为您想要的任何版本。只要semVer高于4.0,它就会生成注入令牌而不是OpaqueToken。
答案 3 :(得分:0)
当我升级到角度5.2.0时发生了这种情况。我最终不得不做以下事情:
已编辑package.json
:无法更改@angular/compiler-cli
的版本。在我的情况下,我不得不把它带回5.2.0,因为它以某种方式达到5.2.10。
删除了node_modules目录。
Ran:npm install
已安装:npm install @angular/flex-layout
。
答案 4 :(得分:0)
将角度4更新为5时出现此错误
我通过更改package.json文件解决了此问题
“ @ agm / core”:“ 1.0.0-beta.1”到“ @ agm / core”:“ 1.0.0-beta.5”
运行后 npm更新