簡體   English   中英

升級到Angular 4后角度路由不起作用

[英]Angular Routing Not Working After Upgrading to Angular 4

在這里找到了這樣的更新

在Linux / Mac上:npm install @ angular / {common,compiler,compiler-cli,core,forms,http,platform-b​​rowser,platform-b​​rowser-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更新為最新版本為我解決了這個問題:

  1. 停止ng serve (如果正在運行)。
  2. npm install @angular/cli@latest --save-dev
  3. ng serve

希望這也解決了你的zone.js問題(請留意我發布)。

警告:

The <template> element is deprecated. Use <ng-template> instead...

很可能是由一個庫(可能是ng2-bootstrapng2-chartsng2-toasty ?)引起的,這些庫使用了不推薦使用的template語法(或者你在你的代碼中),所以你可能也想嘗試升級它們 - - 如果有更新的版本。 我也得到了這個棄用警告,但我的依賴關系仍然沒有更新到4.0,所以我在接下來的幾天里和它一起生活。

注意 :我不是那些升級指令的忠實粉絲,因為在一些項目中逐字逐句地跟隨它們(就像我最初做的那樣,沒有注意)會給你提供引用同一庫的不同版本的dependenciesdevDependencies 例如, 現在在package.json引用了兩個版本的@angular/compiler-cli4.02.4

更新完整性

不幸的是,在wuno的情況下,要完成升級,他必須盡可能:

  1. 創建一個新項目。
  2. 更新它。
  3. src目錄替換為其現有項目中的目錄。
  4. npm install使用他的額外軟件包npm install和更新package.json

根據他的最終評論:

我必須創建一個新項目,更新它,用我現有項目中的那個替換src目錄,然后用我的額外包替換npm install和update package.json。

我們從未發現造成問題的原因導致他在特定情況下重新創建項目 ,但升級CLI最終解決了原始問題中的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM