You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Partytown是否支持Smartlook?集成Smartlook至Partytown遇异常

问题

我尝试用以下代码将Smartlook集成到Partytown,代码没有报错,但Smartlook后台完全没有数据显示,想问问操作是不是哪里有问题?

集成Smartlook的代码:

<script type='text/javascript'>
  window.smartlook||(function(d) {
    var o=smartlook=function(){ o.api.push(arguments)},h=d.getElementsByTagName('head')[0];
    var c=d.createElement('script');o.api=new Array();c.async=true;c.type='text/partytown';
    c.charset='utf-8';c.src='https://web-sdk.smartlook.com/recorder.js';h.appendChild(c);
    })(document);
    smartlook('init', PROJECT_KEY, { region: REGION });
</script>

我已经做了这些前置操作:

  1. 在所有头部代码之前添加了Partytown初始化代码:
<script type="module">
      import { partytownSnippet } from "@builder.io/partytown/integration";
      const snippetText = partytownSnippet();
      const el = document.createElement("script");
      el.innerText = snippetText;
      document.head.appendChild(el);
</script>
  1. 在package.json的scripts中添加了配置:
"scripts": {
    "partytown": "partytown copylib public/~partytown"
  },

排查方案

  • 修正脚本类型标记:你现在把内部动态创建的script标签设为type='text/partytown',但外层包裹的脚本还是text/javascript——Partytown要求整个第三方脚本块都要标记为text/partytown,才能将其移到web worker中执行。内部动态加载的第三方资源,Partytown会自动处理,不需要手动加type。修改后的代码如下:

    <script type='text/partytown'>
      window.smartlook||(function(d) {
        var o=smartlook=function(){ o.api.push(arguments)},h=d.getElementsByTagName('head')[0];
        var c=d.createElement('script');o.api=new Array();c.async=true;
        c.charset='utf-8';c.src='https://web-sdk.smartlook.com/recorder.js';h.appendChild(c);
        })(document);
        smartlook('init', PROJECT_KEY, { region: REGION });
    </script>
    
  • 验证Partytown资源部署:运行npm run partytown后,检查public/~partytown目录下是否生成了完整的Partytown文件(比如partytown.js、各类worker文件)。如果目录为空,说明资源拷贝失败,要确认命令里的静态资源目录是否和项目匹配——比如你的静态资源存在dist目录,就要把命令改成partytown copylib dist/~partytown。

  • 核对项目密钥与区域配置:确认PROJECT_KEY是Smartlook后台的真实项目密钥,REGION(比如eu、us)和项目实际区域一致,拼写错误会导致初始化失败但无报错。

  • 查看Partytown控制台日志:打开浏览器开发者工具的Console标签,过滤Partytown相关日志,检查是否有初始化错误、资源加载失败的提示,比如worker文件加载失败会有明确报错。

  • 测试纯Smartlook集成:先移除Partytown相关配置,用普通方式集成Smartlook,看后台能否收到数据。如果纯集成也没数据,问题出在Smartlook自身配置(比如域名白名单、项目状态);如果纯集成正常,再聚焦Partytown的配置问题。

内容的提问来源于stack exchange,提问作者Omama Zainab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 15:53:25