我们正在开发一个使用node for the server / api和angular for the frontend的应用程序,目前我们在我的一个团队成员机器上面临一个奇怪的问题。
我们是3位开发人员我们2人使用Windows 10而另一位使用MacOS 10.12.5,这是在尝试在浏览器上加载客户端时出现以下问题:
zone.js:642 Unhandled Promise rejection: Template parse errors:
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: MdButton,MdButton ("<span>[ERROR ->]<button class="butron" md-button [mdMenuTriggerFor]="menu">{{menuItem}}</button>
<md-menu #menu="mdMe"): ng:///AppModule/MenuComponentComponent.html@0:6
More than one component matched on this element.
Make sure that only one component's selector can match a given element.
Conflicting components: MdMenuItem,MdMenuItem ("}}</button>
<md-menu #menu="mdMenu">
<a [routerLink]="['/participant']" routerLinkActive="active">[ERROR ->]<button md-menu-item>Participante</button></a>
<a [routerLink]="['/company']" routerLinkActive="act"): ng:///AppModule/MenuComponentComponent.html@2:63
More than one component matched on this element.
[...and so on]
开发环境如下:
并且前端的package.json是:
"dependencies": {
"@angular/animations": "^4.0.2",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/flex-layout": "^2.0.0-beta.8",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/material": "^2.0.0-beta.5",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"@covalent/core": "^1.0.0-beta.3-2",
"@covalent/dynamic-forms": "^1.0.0-beta.3-2",
"@covalent/highlight": "^1.0.0-beta.3-2",
"@covalent/http": "^1.0.0-beta.3-2",
"@covalent/markdown": "^1.0.0-beta.3-2",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"ngx-uploader": "^2.2.8",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "^1.0.0",
"@angular/compiler-cli": "^4.0.0",
"@types/jasmine": "2.5.38",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"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": "~2.0.0",
"tslint": "~4.5.0",
"typescript": "~2.2.0"
}
我们已经验证我们所有3个都在相同版本的节点,npm,所有相同的包,我们在同一分支上的同一提交,但每当我们在Mac计算机上提供服务时,一切都正确加载节点控制台,但在尝试加载应用程序时出现上述错误,但在Windows环境中,我们无法重现该问题,因为一切正常并且符合预期。
我们删除并克隆了项目并完成了npm install几次,只删除了node_modules文件夹并重新安装了它们,重新安装了node和npm,从全局包或本地包中调用了ng,依此类推,没有一个工作到目前为止。
我已经完成了一些搜索,似乎有些人看到早期版本的角度2,但大多数都是通过更新软件包修复的,而且我们3都有相同,我们不认为这是问题,有没有其他人面临类似的事情?在这一点上我们几乎一无所知。
提前感谢您的帮助。
编辑:我必须补充说,自从我将项目从angular-cli beta更新为稳定版本并从2.3.1更改为4.0.2后,这种情况开始发生。
答案 0 :(得分:0)
我修好了。
清除所有内容并再次克隆项目,然后从package.json中删除所有'^',一切按预期工作。它可能是一个更新的软件包来自冲突的东西。