加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 07:15:44 所属栏目:安全 来源:网络整理
导读:我这样更新了,found here On Linux/Mac: npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest –save 当我删除node_modules然后n
我这样更新了,found here

On Linux/Mac: npm install
@angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest
typescript@latest –save

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

WARNING in ./~/@angular/core/@angular/core.es5.js 5889:15-36 Critical
dependency: the request of a dependency is an expression

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

控制台中的当前错误.

enter image description here

背景

我的项目工作正常,直到我昨晚升级到Angular 4.现在,当我点击一个链接而不是加载模块(我是延迟加载)时,它告诉我它找不到模块.

Eror

ZoneAwareError {__zone_symbol__error: Error: Uncaught (in promise):
Error: Cannot find module ‘./benefits/benefits.module’. Error: Cannot
……}

有没有其他人分享这种情况或有任何线索如何解决这个问题,甚至做什么来解决它?我认为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更新为最新版本为我解决了这个问题:

>停止服务(如果正在运行).
> npm install @ angular / cli @ latest –save-dev
> ng服务

希望这也解决了你的zone.js问题(请留意我发布).

警告:

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

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

注意:我不是那些upgrade instructions的忠实粉丝,因为在一些项目中逐字逐句地跟随它们(就像我最初那样,没有注意)给了你依赖项和devDependencies,它们引用了同一个库的不同版本.例如,您现在在package.json中引用了两个版本的@ angular / compiler-cli:4.0和2.4.

更新完整性

不幸的是,在wuno的情况下,要完成升级,他必须尽可能:

>创建一个新项目.
>更新它.
>将src目录替换为其现有项目中的目录.
> npm使用他的额外软件包安装和更新package.json.

根据他的最终评论:

I had to create a new project,update it,replace the src directory
with the one from my existing project then npm install and update
package.json with my extra packages.

我们从未发现造成问题的原因导致他在特定情况下重新创建项目,但升级CLI最终解决了原始问题中的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读