乐趣区

关于sap:SAP-电商云-Spartacus-服务器端渲染的单步调试详细步骤

本文介绍如何在本地调试 SAP Spartacus Node.js 利用。

依照这个链接 装置 Spartacus.

在 package.json 的 scripts 区域,生成了一个名叫 build:ssr 的指令,默认依照 –prod 参数来构建。

如果应用这个 script,咱们不得不调试 minified and uglified code, 不太直观。

也就是说,去掉 --prod:production

应用如下命令行:

ng build && ng run mystore:server

采纳这个形式构建出的 main.js, 代码是可读的:

(3) 增加一个 --inspect-brk 选项:

node --inspect-brk dist/mystore/server/main.js

启动:

npm run serve:ssr

(4) Chrome 地址栏输出 chrome://inspect, 点击 inspect hyperlink:

断点会主动触发,停在 main.js 的第一行:

当初就能够开始调试了:

引起 Node.js 利用高 CPU 占用率的一些可能性:

  • 循环和迭代。如果不限度可迭代汇合的大小,任何 .map、.reduce、.forEach 和其余迭代办法调用都可能导致问题。for 和 while 循环也存在同样的潜在问题。如果业务层面上必须解决大型汇合,请应用流或将汇合,拆分为块并异步解决它们。它将在不同的 EventLoop 迭代之间调配负载,缩小阻塞效应。
  • 递归函数。这里的原理雷同,你须要思考递归深度,特地是当函数是同步的时候。
  • 微小的有效载荷。Node.js 是为解决大量异步操作而创立的,例如向数据库发出请求或内部 API 调用。在来自内部起源的有效载荷很小之前,它能够完满运行。不要遗记 Node.js 须要先读取一个有效载荷并将其存储在内存中,而后将 JSON 解析为一个对象(减少了更多内存),对该对象执行一些操作。来自 Node.js 服务的微小负载也可能是一个问题,因为 Node.js 首先将对象字符串化为 JSON,而后将它们发送到客户端。所有这些操作都可能导致高 CPU,确保无效负载大小不是很大,应用分页,并且不要预填充不必要的数据。对于 GraphQL 服务,应用复杂性来限度响应负载。
退出移动版