当前位置: 首页 > Web前端 > JavaScript

SAP电商云Spartacus服务端渲染详解分步调试

时间:2023-03-26 21:47:07 JavaScript

本文介绍如何在本地调试SAPSpartacusNode.js应用。点击此链接安装Spartacus。在package.json的scripts部分,生成了一个名为build:ssr的命令,默认使用--prod参数构建。如果我们使用这个脚本,我们必须调试缩小和丑化的代码,这不是很直观。也就是说去掉--prod和:production,使用如下命令行:ngbuild&&ngrunmystore:server这样构建的main.js,代码可读性强:(3)添加一个--inspect-brk选项:node--inspect-brkdist/mystore/server/main.js启动:npmrunserve:ssr(4)在Chrome地址栏输入chrome://inspect,点击inspect超链接:断点会自动触发,停在main第一行.js:Nowit'stimetostartdebugging:SomepossibilitiesforhighCPUusageinNode.jsapplications:Loopsanditerations.如果可迭代集合的大小不受限制,任何.map、.reduce、.forEach和其他迭代方法调用都可能导致问题。for和while循环也存在同样的潜在问题。如果您必须在业务级别处理大型集合,请使用流或将集合拆分为块并异步处理。它将在不同的EventLoop迭代之间分配负载,减少阻塞效应。递归函数。这里的原理是一样的,需要考虑递归深度,尤其是函数同步的时候。巨大的有效载荷。Node.js的创建是为了处理大量异步操作,例如向数据库发出请求或调用外部API。它可以完美地工作,直到来自外部源的小有效负载为止。不要忘记Node.js需要先读取一个payload并将其存储在内存中,然后将JSON解析为一个对象(添加更多内存),对该对象执行一些操作。来自Node.js服务的巨大负载也可能是一个问题,因为Node.js在将对象发送到客户端之前首先将对象字符串化为JSON。所有这些操作都会导致高CPU,确保负载大小不是很大,使用分页,不要预填充不必要的数据。对于GraphQL服务,使用复杂性来限制响应负载。