如何调试 Angular 通用?

How to debug Angular universal?

提问人:dimson d 提问时间:3/3/2018 最后编辑:Bishandimson d 更新时间:10/23/2023 访问量:7528

问:

我正在使用 Angular Universal Starter 存储库。在 ssr 的 angular 4 universal 中,我们可以在开发模式下调试应用程序的浏览器和节点部分(参见控制台),但现在我看不到调试节点部分的方法。我试图通过一些更改(文件路径等)来执行,但 angular 似乎需要 aot 编译的应用程序和ts-node server.ts

throw Error:必须传入 NgModule 或 NgModuleFactory 才能 自举。

来自文档:

开发(仅限客户端渲染) - 运行 npm run start,这将启动 ng serve

生产环境(也用于在本地测试 SSR/预渲染) - npm run build:ssr & & npm run serve:ssr

乍一看,开发中的 Node.js 调试不起作用。至少从盒子里。可能是有人解决了这个问题。

节点 .js 角度 角度 通用

评论

0赞 Ben Racicot 6/12/2019
是否可以使用服务来代替 Universal 的高强度工作负载?无论如何,谷歌机器人现在应该在没有它的情况下很好地渲染 SPA:webmasters.googleblog.com/2019/05/......
0赞 gwest7 2/2/2021
也许构建应用程序并手动执行。node --inspect

答:

0赞 kris_IV 9/14/2018 #1

您无法在浏览器中调试 Angular 4 应用程序的节点部分。节点在服务器部分工作,因此您无法在浏览器(客户端)中看到这一点。

启动时调试此部分的唯一方法是使用外部工具,如 WebStorm 等。如果您在 TS 模式下启动应用程序,则可以使用此工具的所有功能。ts-node server.tsDebug mode

评论

0赞 dimson d 9/16/2018
正如我所说,我们无法调试节点部分,因为在开发应用程序中根本没有使用节点部分(仅限客户端渲染)
0赞 kris_IV 9/16/2018
但是您始终可以在开发模式下启动 ssr 应用程序并对其进行调试。
-5赞 Kavinda Senarathne 11/17/2020 #2

若要创建服务器端应用模块,请app.server.module.ts运行以下 CLI 命令。

ng add @nguniversal/express-engine

若要开始在本地系统上使用通用呈现应用,请使用以下命令。

npm run dev:ssr
0赞 Muhammad Numan 11/9/2021 #3

我认为这一小段代码可以帮到你

创建项目

ng n debuggable-universal-server --interactive=false

cd debuggable-universal-server

添加通用

ng add @nguniversal/express-engine --clientProject debuggable-universal-server

评论

0赞 Shawn Hemelstrand 1/24/2023
虽然这个代码片段可能是解决方案,但包括一个解释确实有助于提高你的帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。
0赞 joohi 10/20/2023 #4

安装软件包。ts-node

npm install ts-node

在 IDE 中为 创建新的启动配置。server.ts

将启动配置的类型设置为节点。

将启动配置的程序设置为 。server.ts

将启动配置的 nodeArgs 设置为 。-r ts-node

在 IDE 中启动调试器。

这将在调试模式下启动 Node.js 服务器。然后,您可以单步执行代码并根据需要设置断点。