[英]Angular Routing Not Working After Upgrading to Angular 4
我在這里找到了這樣的更新
在Linux / Mac上:npm install @ angular / {common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations} @latest typescript @ latest - 救
當我刪除node_modules然后npm install
我得到這個,
警告在./~/@angular/core/@angular/core.es5.js 5889:15-36嚴重依賴:依賴的請求是一個表達式
也許這會幫助別人幫助我。 這似乎是ES5的一個問題?
控制台中的當前錯誤。
背景
我的項目工作正常,直到我昨晚升級到Angular 4
。 現在,當我點擊一個鏈接而不是加載模塊(我是延遲加載)時,它告訴我它找不到模塊。
Eror
ZoneAwareError {__zone_symbol__error:錯誤:未捕獲(在承諾中):錯誤:找不到模塊'./benefits/benefits.module'。 錯誤:不能......}
有沒有其他人分享這種情況或有任何線索如何解決這個問題,甚至做什么來解決它? 我認為Angular 4
沒有突破性的變化?
代碼示例
的package.json
{
"name": "my-web-application",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^4.0.0",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/compiler-cli": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/platform-server": "^4.0.0",
"@angular/router": "^4.0.0",
"angular2-jwt": "^0.1.28",
"angular2-signaturepad": "^2.2.0",
"auth0-lock": "^10.5.0",
"core-js": "^2.4.1",
"ng2-bootstrap": "^1.3.3",
"ng2-charts": "^1.5.0",
"ng2-toasty": "^2.5.0",
"rxjs": "^5.2.0",
"typescript": "^2.2.1",
"zone.js": "^0.7.6"
},
"devDependencies": {
"@angular/cli": "1.0.0-beta.32.3",
"@angular/compiler-cli": "^2.4.0",
"@types/jasmine": "2.5.38",
"@types/node": "~6.0.60",
"codelyzer": "~2.0.0-beta.4",
"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-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-coverage-istanbul-reporter": "^0.2.0",
"protractor": "~5.1.0",
"ts-node": "~2.0.0",
"tslint": "~4.4.2",
"typescript": "~2.2.1"
}
我遇到了一些升級到Angular 4.0時出現的錯誤:
Critical dependency: The request of the dependency is an expression.
將angluar-cli更新為最新版本為我解決了這個問題:
ng serve
(如果正在運行)。 npm install @angular/cli@latest --save-dev
ng serve
希望這也解決了你的zone.js問題(請留意我發布)。
警告:
The <template> element is deprecated. Use <ng-template> instead...
很可能是由一個庫(可能是ng2-bootstrap
, ng2-charts
或ng2-toasty
?)引起的,這些庫使用了不推薦使用的template
語法(或者你在你的代碼中),所以你可能也想嘗試升級它們 - - 如果有更新的版本。 我也得到了這個棄用警告,但我的依賴關系仍然沒有更新到4.0,所以我在接下來的幾天里和它一起生活。
注意 :我不是那些升級指令的忠實粉絲,因為在一些項目中逐字逐句地跟隨它們(就像我最初做的那樣,沒有注意)會給你提供引用同一庫的不同版本的dependencies
和devDependencies
。 例如, 您現在在package.json
引用了兩個版本的@angular/compiler-cli
: 4.0
和2.4
。
更新完整性
不幸的是,在wuno的情況下,要完成升級,他必須盡可能:
src
目錄替換為其現有項目中的目錄。 npm install
使用他的額外軟件包npm install
和更新package.json
。 根據他的最終評論:
我必須創建一個新項目,更新它,用我現有項目中的那個替換src目錄,然后用我的額外包替換npm install和update package.json。
我們從未發現造成問題的原因導致他在特定情況下重新創建項目 ,但升級CLI最終解決了原始問題中的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.