Angular 2在更改后未更新浏览器

时间:2016-03-08 09:33:05

标签: angular

基本上当我在我的应用程序中更改某些内容时,控制台可以检测到更改...

[0] 9:23:22 AM - 检测到文件更改。开始增量编译......

[0] 9:23:23 AM - 编译完成。注意文件更改。

[1] [BS]文件已更改:app / components / logo / logo.component.js

[1] [BS]文件已更改:app / components / navBar / navbar.component.js

[1] [BS]文件已更改:app / components / sideBar / sidebar.component.js

...

但它不再自动更新我的网页浏览器(屏幕显示为"正在加载..."消息:(我不知道为什么。

这是我的package.json

{
  "name": "room",
  "version": "1.0.0",
  "scripts": {
"start": "concurrently \"npm run tsc:w\" \"npm run lite\"  ",
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"typings": "typings",
"postinstall": "typings install",
"build-master-sass": "node-sass -w style.scss style.css",
"build-children-sass": "node-sass -w -r app/css -o app/css",
"lint" : "tslint app/**/*.ts"
},
"license": "ISC",
"dependencies": {
"angular2": "2.0.0-beta.7",
"systemjs": "0.19.22",
"es6-promise": "^3.1.2",
"es6-shim": "^0.33.4",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.2",
"zone.js": "0.5.15",
"ng2-bootstrap": "1.0.5",
"bootstrap-material-design-icons" : "2.2.0"
},
"devDependencies": {
"concurrently": "^2.0.0",
"lite-server": "^2.1.0",
"typescript": "^1.8.2",
"typings": "^0.6.8"
}
}

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我遇到类似问题(测试版11)(MAC / Chrome)。按照Angular IO的教程,文件被检测为已更改并重新编译,但浏览器不刷新。我有另一个项目(模板启动器)beta.8,它正在工作。一旦我发现不同之处,我会给你一个抬头。

更新:(让你感到羞耻的事情) 将我的package.json从angular2.beta.11更改为(angular2.beta.8或angular2.beta.9)后,我进行了npm安装然后[npm start] - 浏览器同步由浏览器启动和更新。 [CTRL-C]停止手表然后将我的包裹改回angular2.beta.11做了另一个[NPM INSTALL]和[NPM START] 打开了一个新的浏览器选项卡但是当我进行更改时,它更新了我开始使用的另一个选项卡,当我使用beta.8 / 9启动时停止了。而不是它推出的Tab。看来Browsersync不是以beta.11开始的吗?

答案 1 :(得分:0)

我知道问题已超过一年,但这个问题仍然存在。实际上,有一个open issue in Github

在某些情况下,实时重新加载无法完成其工作,从而导致:

  1. 代码中的更改不会触发新的编译
  2. 更改会触发新的编辑,但浏览器会提供过时的版本
  3. 在第一种情况下,不同的原因似乎是:

    • 一个错误版本的Angular-cli(solution:切换到另一个版本)
    • 文件路径中的空格或一些符号(例如括号)(solution:避免使用空格和符号)
    • 文件系统缓存问题(solution:使用"同步"保存操作后)
    • 太多观察者(solution:增加inotify max_user_watches)
    • 轮询文件更改之间的时间段(solution:使用--poll标志设置自定义时间段)

    对于那些喜欢我的人来说遇到第二个问题(有编译而不是浏览器更新),没有真正的解决方法。有些人reported禁用"安全写" (在没有原子保存的编辑器中,如VS Code,它不适用)帮助了他们,但这不是我的情况。好消息是,它似乎主要发生在更新接口定义和only after very small changes(1-2行代码)时。

    我能找到的最佳解决方法是强制进行更大的更改(即删除文件的所有内容,再次保存,粘贴和保存)。在大多数编辑器中,可以使用Ctrl +(A,X,S,V,S)快速实现。

    作为最后的手段,在所有情况下,重新启动" ng serve"更改后修复问题。