Ionic 3“ionic cordova build android --prod”错误元数据版本不匹配

Tar*_*hra 4 ionic3 angular

运行命令“ionic cordova build android --prod”后出现以下错误。

Error: Metadata version mismatch for module C:/Users/newuser/Documents/project/project/node_modules/@ionic/storage/dist/src/storage.d.ts, found version 4, expected 3
    at StaticSymbolResolver.getModuleMetadata (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:24474:34)
    at StaticSymbolResolver._createSymbolsOf (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:24260:46)
    at StaticSymbolResolver.getSymbolsOf (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:24241:14)
    at C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:23023:30
    at Array.forEach (<anonymous>)
    at extractProgramSymbols (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:23022:79)
    at AotCompiler.compileAll (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler\bundles\compiler.umd.js:22720:47)
    at CodeGenerator.codegen (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler-cli\src\codegen.js:30:14)
    at Function.NgTools_InternalApi_NG_2.codeGen (C:\Users\newuser\Documents\project\project\node_modules\@angular\compiler-cli\src\ngtools_api.js:61:30)
    at Object.doCodegen (C:\Users\newuser\Documents\project\project\node_modules\@ionic\app-scripts\dist\aot\codegen.js:6:51)
Run Code Online (Sandbox Code Playgroud)

离子信息:

@ionic/cli-utils  : 1.14.0
ionic (Ionic CLI) : 3.14.0
Run Code Online (Sandbox Code Playgroud)

全局包:

cordova (Cordova CLI) : 7.1.0
Run Code Online (Sandbox Code Playgroud)

本地包:

@ionic/app-scripts : 2.1.3
Cordova Platforms  : android 6.3.0
Ionic Framework    : ionic-angular 3.6.0
Run Code Online (Sandbox Code Playgroud)

系统:

Node : v8.9.0
npm  : 5.5.1
OS   : Windows 10
Run Code Online (Sandbox Code Playgroud)

杂项:

backend : pro
Run Code Online (Sandbox Code Playgroud)

小智 5

正如此问题所述,这是由于离子存储 2.1.1 依赖于 angular 5.x。在我的情况下运行:

npm install --save @ionic/storage@2.0.1
Run Code Online (Sandbox Code Playgroud)

将我的离子存储恢复到 2.0.1 版本并解决了我的问题。

请记住,您的离子存储的 package.json 可能会声明其版本为 2.0.1,但如果您查看详细信息,您会发现它引用的是 2.1.1 包版本。

希望这可以帮助你