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

时间:2017-03-27 16:39:12

标签: angular platform-server

我这样更新了found here

  

在Linux / Mac上:npm install   @角/ {常见的,编译器,编译器-CLI,核心,形式,HTTP,平台浏览器,平台浏览器的动态的,平台的服务器,路由器,动画} @latest   typescript @ latest --save

当我删除node_modules然后npm install时,我得到了这个,

  

警告在./~/@angular/core/@angular/core.es5.js 5889:15-36严重   依赖:依赖的请求是表达式

也许这会帮助别人帮助我。这似乎是ES5的一个问题?

控制台中的当前错误。

enter image description here

背景

我的项目工作正常,直到我昨晚升级到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"
  }

1 个答案:

答案 0 :(得分:2)

我遇到了升级到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
  4. 希望这也解决了你的zone.js问题(请让我发布)。

    警告:

      

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

    很可能是由使用不推荐的ng2-bootstrap语法的库(可能是ng2-chartsng2-toastytemplate?)引起的(或者你是在您的代码中),所以您可能也想尝试升级它们 - 如果有更新的版本。我也得到了这个弃用警告,但我的依赖关系仍然没有更新到4.0,因此我将在接下来的几天内与它一起生活。

    注意:我不是那些upgrade instructions的忠实粉丝,因为他们逐字逐句地跟着他们(就像我原来那样,没有注意)在某些项目上给你们{{1}引用同一lib的不同版本的{}和dependencies。例如,现在在devDependencies中引用了@angular/compiler-cli的两个版本:package.json4.0

    完整性更新

    不幸的是,在wuno的情况下,为了完成升级,他必须走到:

    1. 创建一个新项目。
    2. 更新它。
    3. 2.4目录替换为现有项目中的目录。
    4. src并使用额外的套餐更新npm install
    5. 根据他的最终评论:

        

      我不得不创建一个新项目,更新它,替换src目录   使用我现有项目中的那个,然后npm安装和更新   package.json和我的额外包裹。

      我们从来没有发现是什么导致问题迫使他在其特定情况下重新创建项目,但升级CLI最终解决了问题。原始问题。