🔥

AstroWindでPartyTownを使う

2024/05/31に公開

結論

AstroWindでPartyTownを使うにはhasExternalScriptsをTrueにする

astro.config.mjshasExternalScriptsfalseだとPartyTownが動かないようになっています。。。


// astro.config.mjs

const hasExternalScripts = true; // ここをtrueにするとPartyTownが動く
const whenExternalScripts = (items = []) =>
  hasExternalScripts ? (Array.isArray(items) ? items.map((item) => item()) : [items()]) : [];

// ...省略

export default defineConfig({
  output: 'static',

  integrations: [
    
    // ...省略

  ...whenExternalScripts(() =>
        partytown({
          config: { forward: ['dataLayer.push'] },
        })
      ),

],
});


背景

AstroWindのサイトにGoogleAnalyticsを導入する際に、
AnalyticsのMEASUREMENT IDを設定したのですが検知できていませんでした。

PartyTownで外部スクリプトを読み込むようにAstroWindでは設定されているのですが、
そもそもPartyTownが動いていないことが判明。

ちゃんとコードを読んでみると、astro.config.mjshasExternalScriptsfalseになっていることが原因でした。

関連

GitHubで編集を提案

Discussion