🔥
AstroWindでPartyTownを使う
結論
AstroWindでPartyTownを使うにはhasExternalScriptsをTrueにする
astro.config.mjs
のhasExternalScripts
がfalse
だと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.mjs
のhasExternalScripts
がfalse
になっていることが原因でした。
Discussion