我正在使用Angular 4应用程序并使用“npm start”命令 -
获得以下错误模块中元数据版本不匹配的错误 C:/gitRepo/gmdias/gmdais-frontend/node_modules/@angular/animations/browser/browser.d.ts, 发现版本4,预期3,解决符号ɵfin C:/gitRepo/gmdias/gmdais-frontend/node_modules/@angular/platform-browser/animations/index.d.ts, 解析符号BrowserAnimationsModule in C:/gitRepo/gmdias/gmdais-frontend/node_modules/@angular/platform-browser/animations/index.d.ts, 解析符号BrowserAnimationsModule in C:/gitRepo/gmdias/gmdais-frontend/node_modules/@angular/platform-browser/animations/index.d.ts
这是我的package.json文件
{
"name": "nucleus-web",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"transpile": "ngc",
"package": "rollup -c",
"minify": "uglifyjs dist/bundles/datatable.umd.js --screw-ie8 --compress --mangle --comments --output dist/bundles/datatable.min.js",
"build": "npm run transpile && npm run package && npm run minify && ng build",
"ng": "ng",
"start": "ng serve",
"postinstall": "ng build",
"test": "sh build.sh"
},
"private": true,
"peerDependencies": {
"@angular/core": "^4.0.1"
},
"dependencies": {
"@angular/animations": "^5.0.0",
"@angular/cdk": "^2.0.0-beta.12",
"@angular/common": "^4.0.1",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.1",
"@angular/forms": "^4.0.1",
"@angular/http": "^4.0.0",
"@angular/material": "^2.0.0-beta.12",
"@angular/platform-browser": "^4.2.5",
"@angular/platform-browser-dynamic": "^4.0.1",
"@angular/platform-server": "^4.4.4",
"@angular/router": "^4.0.0",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5",
"bootstrap": "3.3.7",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"jquery": "^3.2.1",
"lodash": "^4.17.4",
"ng2-file-upload": "^1.2.1",
"ng2-toastr": "^4.1.2",
"ngx-bootstrap": "^1.7.1",
"ngx-treeview": "1.2.3",
"ngx-webstorage": "^1.8.0",
"rxjs": "^5.1.0",
"zone.js": "^0.8.12"
},
"devDependencies": {
"@angular/cli": "1.0.3",
"@types/jasmine": "2.5.38",
"@types/jquery": "^3.2.15",
"@types/node": "~8.0.33",
"codelyzer": "~2.0.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.0",
"ts-node": "~3.3.0",
"tslint": "~4.5.0",
"@angular/compiler": "^4.4.4",
"@angular/compiler-cli": "^4.4.4",
"rollup": "^0.50.0",
"typescript": "^2.5.3",
"uglify-js": "^3.1.3"
},
"repository": {
"type": "git",
"url": "ssh://git@stash.aexp.com/stash/scm/pzn/gmdais-frontend.git"
}
}
答案 0 :(得分:21)
您的@angular/animations
位于版本5.x.x
上,其他@angular/
个包位于4.x.x
。所有@angular/*
个包必须对齐,即具有完全相同的版本号才能使应用程序能够编译。
您获得的具体错误来自.metadata.json
个文件,其中包含"version"
字段。 @angular/*@4.x.x
使用版本3,@angular/*@5.x.x
使用版本4(暂时)。
答案 1 :(得分:7)
问题解决了: 只需在项目目录位置的终端中运行此命令:
npm install @angular/animations@'^5.0.0' @angular/common@'^5.0.0' @angular/compiler@'^5.0.0' @angular/compiler-cli@'^5.0.0' @angular/core@'^5.0.0' @angular/forms@'^5.0.0' @angular/http@'^5.0.0' @angular/platform-browser@'^5.0.0' @angular/platform-browser-dynamic@'^5.0.0' @angular/platform-server@'^5.0.0' @angular/router@'^5.0.0' typescript@2.4.2 rxjs@'^5.5.2'
以上命令基本上将不同的角度模块更新为版本5.
<强>语法:强>
npm install @ angular / moduleName '^ 5.0.0'
答案 2 :(得分:4)
当将角度从4更新为5时,我遇到了同样的问题。问题是我只更新了我的prod依赖项,但我也忘了更新我的dev依赖项。
答案 3 :(得分:1)
我们在其中一个项目中遇到了类似的问题。在package.json文件中,某些模块与Angular 4和Angular 5具有兼容性问题
例如package.json
"@ng-bootstrap/ng-bootstrap": "1.0.0",
如果项目没有与Angular 5兼容的模块,则在构建/编译代码时显示问题。因此,为了解决这些问题,我们需要使用Angular 4识别其兼容版本,并需要使用以下命令手动安装
npm install @ng-bootstrap/ng-bootstrap@1.0.0-beta.6 --save
同样,我们需要检查我们的package.json中需要更新的项目/节点兼容版本的模块
这种方法解决了我们的问题。请尝试这种方式
答案 4 :(得分:0)
我的解决方案是降级导致错误的软件包。不过,首先,我必须找到该软件包的哪个版本的元数据版本较低。为此,我启动了一个新的测试文件夹,并安装了不同版本的插件,直到在"version":3
中找到一个带有index.metadata.json
的插件为止
mkdir test_1
cd test_1
npm init
npm install @ionic-native/code-push@4.3.3
就我而言,4.3.3是升级到Angular 5之前的最新版本(元数据版本4)
尽管如此,最终,对于那些使用Ionic的用户,无论如何我都必须升级到ionic 3.9.2,从而也解决了这些问题。
答案 5 :(得分:0)
您可以尝试以下方法:
npm audit fix
然后
npm install
对我有帮助!
答案 6 :(得分:0)
如果由于某种原因(时间)您无法将Angular 4项目更新到Angular 5,我建议您使用这种方法来解决此错误而不进行迁移。使用修复失配实用程序来更改元数据文件的版本。
在Angular 4项目中,根据开发需要安装repair-mismatch模块
npm我@ jagcolombat / repair-mismatch --save-dev
创建一个文件JavaScript,例如rpmm.js,并输入以下代码段:
const rpmm = require('repair-mismatch'); rpmm({modules:['ngx-vis']});
注意:在这种情况下,我使用ngx-vis@1.0.1(与Angular 6编译),并且我想在Angular 4项目中使用它。
运行此命令以更改指定模块(ngx-vis)中的元数据版本:
节点rpmm.js
有关更多详细信息,请阅读本文:
https://medium.com/@tonytunes2005/solving-error-mismatch-beetwen-angular-versions-b051e7cde418
答案 7 :(得分:0)
遇到此错误?
错误,错误:模块E:/SanthoshRaj-Work/Angular/clientpanel/node_modules/@angular/fire/index.d.ts的元数据版本不匹配,找到版本4,预期为3,在E:/中解析符号AppModule SanthoshRaj-Work / Angular / clientpanel / src / app / app.module.ts,在E:/SanthoshRaj-Work/Angular/clientpanel/src/app/app.module.ts中解析符号,在E:/中解析符号AppModule SanthoshRaj-Work / Angular / clientpanel / src / app / app.module.ts 语法错误(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler \ bundles \ compiler.umd.js:1729:34) 在simpleInContext(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler \ bundles \ compiler.umd.js:24979:23) 在StaticReflector.simplify(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler \ bundles \ compiler.umd.js:24991:13) 在StaticReflector.annotations(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler \ bundles \ compiler.umd.js:24418:41) 在_getNgModuleMetadata(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler-cli \ src \ ngtools_impl.js:138:31) 在_extractLazyRoutesFromStaticModule(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler-cli \ src \ ngtools_impl.js:109:26) 在Object.listLazyRoutesOfModule(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler-cli \ src \ ngtools_impl.js:53:22) 在Function.NgTools_InternalApi_NG_2.listLazyRoutes(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ angular \ compiler-cli \ src \ ngtools_api.js:91:39) 在AotPlugin._getLazyRoutesFromNgtools(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ ngtools \ webpack \ src \ plugin.js:212:44) 在_donePromise.Promise.resolve.then.then.then.then然后(E:\ SanthoshRaj-Work \ Angular \ clientpanel \ node_modules @ ngtools \ webpack \ src \ plugin.js:448:24) 在process.internalTickCallback(internal / process / next_tick.js:77:7)
执行以下步骤:
步骤1:您需要将Angular 版本4 更新为Angular 版本5 。就是这样,对我来说很好。
步骤2:安装以下所有依赖项
npm install @ angular / animations @'^ 5.0.0'@ angular / common @'^ 5.0.0'@ angular / compiler @'^ 5.0.0'@ angular / compiler-cli @'^ 5.0.0 '@ angular / core @'^ 5.0.0'@ angular / forms @'^ 5.0.0'@ angular / http @'^ 5.0.0'@ angular / platform-browser @'^ 5.0.0'@ angular / platform-browser-dynamic@'^5.0.0'@ angular / platform-server @'^ 5.0.0'@ angular / router @'^ 5.0.0'typescript@2.4.2 rxjs @'^ 5.5.2'< / p>
谢谢。