- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 .NET Core 2.1 项目升级到 Angular 6,除了热更新之外,一切似乎都工作正常。在更新之前,可以更新 TypeScript,VS 会重新编译并重新加载浏览器,现在这似乎已被破坏,并且必须手动运行 ng build
重新编译脚本,VS似乎不再自动重新编译了。
我需要设置一个设置(可能在 angular.json 中)来启用开发服务器吗?
由于某种原因,热更新暂时开始工作,并且不确定我做了什么才能让它开始/停止工作。当我启动调试 session 并更新任何 .ts 文件时,我可以看到编译器输出成功,但是当我刷新浏览器时,我看不到任何更改,除非我使用 ng build
手动构建项目。 .
我开始认为某个地方发生了一些沟通不畅,或者可能是某个地方出现了编译器没有发现的错误,导致某些内容无法更新?
在观看输出窗口时我注意到的另一件事是我的网站开始在 localhost:44359 上运行,但在输出中,它显示 Angular Live Development Server is listening on localhost:55287
这些端口应该匹配吗?
我最后观察到的是,在调试 session 期间进行更改后,输出窗口会列出所有 block ,就像手动运行它时一样,但它会输出 i ∩╜ówdm∩╜ú: Compiled successfully
。可能有什么东西被损坏了或者这只是一个输出错误?
最佳答案
经过一番折腾后,我终于成功了,并想分享一下正在发生的事情。
当您运行 ng build
时,它会编译并输出到 ClientApp/dist
文件夹。当您启动调试 session 时,您的项目将使用此版本。如果您在运行时更改文件,它将重新编译该文件,但不会覆盖 dist
目录中的已编译文件。我认为因为这些文件是在 UI 之外手动生成的,所以 VS 认为它不能覆盖它们。
因此,如果您开始遇到同样的问题,幸运的是,有一个简单的解决方法,只需在启动调试 session 之前删除 ClientApp/dist
文件夹即可。 Visual Studio 将在后台编译文件,当您更新源文件或样式表时,您的浏览器应自动刷新。
我发现的另一件事是,如果您需要手动运行ng build
,还有另一种方法可以至少使文件保持最新(需要重新加载):
"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 结束),然后每次更改它将更新的源文件之一。我添加了“调试”,因为我不确定它是否会扰乱生产,如果可以作为备份,始终安全地保留现有或默认的内容。
然后在 Startup.cs (Configure(…)) 中更新服务器以使用新的“调试”:
spa.UseAngularCliServer(npmScript: "debug");
<小时/>
我在使用 Angular 和 VS (2017) 时发现的另一件事是,如果您的代码中碰巧在 cli 编译器未发现的某个位置出现错误,尤其是在任何构造函数或 ngOnInit() 中,功能,即使关闭后也会挂起 Angular 服务,使得热更新看起来不再起作用。这将导致彻底的疯狂,因为在服务关闭之前不会加载任何更改或更新。
另一个可能的原因是编译 .scss 或 Angular 时出现错误。检查“输出”窗口中是否有任何 Angular-cli 错误或浏览器输出中的错误。
关闭 VS 后,确保 VSCompiler.exe
、任何额外的 Console Windows Host
(Angular 服务器,而不是在 SQL 用户下运行的服务器,即 MSSQLFDLauncher.. .)并且所有 Visual Studio 服务都会在任务管理器中关闭。
我意识到这实际上是我的代码中的错误导致一切停止工作或根本不工作。 Angular 和 .NET 不会总是抛出错误,有时错误会被简单地跳过(特别是当存在语法错误时)或在所有其他输出中间输出。
如果事情停止工作,很可能是由于错误或其他原因导致编译器停止响应。最后一个需要仔细检查的区域是您的 package.json
和 angular.json
,尤其是任何路径,然后运行以下命令并密切关注输出以获取需要的更新制作:
ng update
npm update
npm rebuild
npm install
默认的 .json 文件应该可以在包外正常工作,尝试恢复到这些文件以检查您的配置。删除 dist
文件夹基本上是上面的快捷方式(减去实际输出,让 VS 在 Debug 之前编译),强制 Angular 重新编译所有内容,但请记住,如果服务挂起,它会赢在该服务停止之前,无论您做什么。
关于visual-studio-2017 - 开发服务器热更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50867385/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!