美文网首页
给基于SAP Spartacus 3.4.1 版本的 Store

给基于SAP Spartacus 3.4.1 版本的 Store

作者: _扫地僧_ | 来源:发表于2021-08-05 22:47 被阅读0次

    这个 Storefront 的本地地址:C:\Code\SPA\spa3.1\mystore31

    基于的 SAP Spartacus 版本:大于 3.1.3,小于 4.0:


    查看 package-lock.json 或者 yarn.lock, 得知安装的实际版本是 3.4.1:


    命令行:ng add @spartacus/schematics --ssr

    自动添加了如下的资源:


    添加了一个 AppRoutingModule:


    main.server.ts:

    app.server.module.ts:


    增加文件的具体细节,参考这个 commit:
    https://github.com/wangzixi-diablo/mystore31/commit/5a06fc7a904b8d0042497077f6f7a46398a975ec

    最后使用这两个命令:

    npm run build:ssr && npm run serve:ssr

    我先执行 ng build:

    执行 ng run mystore31:serve-ssr,进行服务器端的 build:


    启动服务器:
    node dist/mystore31/server/main.js

    如何调试

    package.json 里加上一个配置:

    "ssrdebug": "node --inspect-brk dist/jerryssr/server/main.js",
    

    npm run ssrdebug


    打开 Chrome,地址栏输入 chrome://inspect/#devices

    点击 inspect:


    错误消息:

    An unknown http error occurred

    通过调试,能找到这条错误消息的抛出位置:


    看看这个 url 是不是在浏览器里能直接访问:

    https://20.51.210.49:9002//occ/v2/basesites?fields=baseSites(uid,defaultLanguage(isocode),urlEncodingAttributes,urlPatterns,stores(currencies(isocode),defaultCurrency(isocode),languages(isocode),defaultLanguage(isocode)),theme)

    答案是不行:


    解决了上图 ERR_CERT_AUTHORITY_INVALID 错误之后,仍然报同样的错误:

    解决方案

    在 node 启动命令前,加上参数:

    cross-env NODE_TLS_REJECT_UNAUTHORIZED=0

    原始的错误 An unknown http error occurred 消失了,出现了新错误:

    解决方案

    修改 server.ts, 将超时参数设置为0,即永不超时:

    const ngExpressEngine = NgExpressEngineDecorator.get(engine, { timeout: 0 });
    

    执行 ng run mystore31:serve-ssr,重新 build,问题消失:

    更多Jerry的原创文章,尽在:"汪子熙":


    相关文章

      网友评论

          本文标题:给基于SAP Spartacus 3.4.1 版本的 Store

          本文链接:https://www.haomeiwen.com/subject/tmtevltx.html