我将我的.NET Core2.1项目升级到了Range6,除了热更新之外,一切似乎都在正常工作。在更新之前,更新TypeScript是可能的,VS将重新编译和重新加载浏览器,这似乎与手动运行ng build重新编译脚本一起中断了,VS似乎不再自动重新编译了。
是否有一个设置,可能在angular.json中,我需要设置它来启用开发服务器?
更新
由于某些原因,热更新暂时开始工作,并且不确定我是如何让它开始/停止工作的。当我启动调试会话并更新任何.ts文件时,我可以看到编译器输出成功,但是当我刷新浏览器时,我不会看到任何更改,除非我使用ng build手动构建项目。
我开始认为,在某个地方发生了一些错误沟通,或者某个地方可能出现了错误,而编译器没有发现这些错误,从而导致了一些不更新的东西?
我在查看输出窗口时注意到的另一件事是,我的站点开始在本地主机上运行:44359,但是在输出中,它说这些端口应该匹配吗?
最后一个观察是,在调试会话中进行了更改之后,输出窗口列出了所有块,就像手动运行它时一样,除非它输出i ∩╜ówdm∩╜ú: Compiled successfully,否则它可能会损坏,还是仅仅是一个输出错误?
发布于 2018-06-19 18:29:03
经过了大量的胡闹,我终于开始工作了,我想我可以分享发生了什么。
当您运行ng build时,它会编译并输出到ClientApp/dist文件夹。启动调试会话时,项目将使用此版本。如果您在运行时更改一个文件,它将重新编译这些文件,但它不会覆盖dist目录中的已编译文件。我认为因为这些文件是在UI之外手动生成的,VS认为它不能覆盖它们。
因此,如果您开始遇到同样的问题,幸运的是,在启动调试会话之前,只需ClientApp/dist删除文件夹即可。Visual将在后台编译这些文件,当您更新源文件或样式表时,浏览器应该会自动刷新。
更新
我发现的另一件事是,如果您需要手动运行ng build,还有另一种方法至少可以保持文件的最新(需要重新加载):
package.json
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"debug": "ng serve --watch",
},然后运行ng build --watch而不是ng build --这将使提示符进入监视模式(按ctrl c键结束),然后每次您更改其中一个源文件时,它都会更新。我添加了"debug“,因为我不确定它是否会扰乱生产,如果可以作为备份,始终可以安全地保留现有的或默认的东西。
然后在Startup.cs中(配置(…))更新服务器以使用新的“调试”:
spa.UseAngularCliServer(npmScript: "debug");更新-2
我在使用functions (2017)时发现的另一件事是,如果代码中的某个地方发生错误,而cli编译器,特别是在任何一个构造函数或ngOnInit()函数中没有发现,那么即使在关闭之后,它也会挂起,这使得热更新看起来不再有效。这将导致完全疯狂,因为在服务关闭之前,不会加载任何更改或更新。
另一个可能的原因是编译.scss或when时出错。检查“输出”窗口中的任何角-cli错误或在浏览器输出。
关闭VS后,请确保VSCompiler.exe,任何额外的Console Windows Host (角服务器,而不是在MSSQLFDLauncher用户下运行的服务器).)任务管理器中的任何Visual服务都将被关闭。
我意识到,这实际上是我的代码中的一个错误,它导致所有东西停止工作或根本不工作。角和.NET并不总是抛出一个错误,有时这些错误只是被跳过(特别是当有语法错误时)或输出在所有其他输出中。
更有可能的是,如果事情停止工作,这要么是因为一个错误或其他原因导致编译器停止响应。最后一个需要反复检查的区域是package.json和angular.json,特别是任何路径,然后运行以下命令并监视需要进行更新的输出:
ng update
npm update
npm rebuild
npm install默认的.json文件应该在包外工作,尝试恢复到那些来检查您的配置。删除dist文件夹基本上是上述操作的一个快捷方式(减去实际输出,让VS在调试前编译),强制重新编译所有内容,但请记住,如果服务被挂起,那么在停止该服务之前,您做什么并不重要。
发布于 2019-07-01 13:58:27
简短的回答。
删除ClientApp文件夹中的“Dist”文件夹。在VisualStudio中
以及Reboot和Run
发布于 2019-10-15 02:28:21
我也通过了同样的问题。
你有两个选择:
我认为第二个解决方案更好,因为您不必每次想调试应用程序时都删除"dist“文件夹。
https://stackoverflow.com/questions/50867385
复制相似问题