컨텐츠로 건너뛰기

@astrojs/ partytown

이 **Astro 통합**은 Astro 프로젝트에서 Partytown을 활성화합니다.

Partytown은 리소스 집약적인 스크립트를 web worker메인 스레드 외부로 재배치하는 데 도움이 되는 지연 로드 라이브러리입니다.

분석이나 광고와 같은 작업에 타사 스크립트를 사용하는 경우 Partytown은 사이트 속도를 저하시키지 않도록 하는 좋은 방법입니다.

Astro Partytown 통합은 Partytown을 설치하고 모든 페이지에서 활성화되었는지 확인합니다.

Astro에는 공식 통합 설정을 자동화하는 astro add 명령이 포함되어 있습니다. 원하는 경우 대신 통합을 수동으로 설치할 수 있습니다.

새 터미널 창에서 다음 명령 중 하나를 실행합니다.

Terminal window
npx astro add partytown

문제가 발생하면 GitHub에서 언제든지 보고하고 아래 수동 설치 단계를 시도해 보세요.

먼저 @astrojs/partytown 패키지를 설치하세요.

Terminal window
npm install @astrojs/partytown

그런 다음 integrations 속성을 사용하여 astro.config.* 파일에 통합을 적용합니다.

astro.config.mjs
import { defineConfig } from 'astro/config';
import partytown from '@astrojs/partytown';
export default defineConfig({
// ...
integrations: [partytown()],
});

Partytown은 구성 없이 사용할 준비가 되어 있어야 합니다. 사이트에 기존 타사 스크립트가 있는 경우 type="text/partytown" 속성을 추가해 보세요.

<script type="text/partytown" src="fancy-analytics.js"></script>

브라우저 개발 도구에서 “Network” 탭을 열면 partytown 프록시가 이 요청을 가로채는 것을 볼 수 있습니다.

이 통합을 구성하려면 astro.config.mjs 파일의 partytown() 함수 호출에 ‘config’ 객체를 전달하세요.

astro.config.mjs
export default defineConfig({
// ...
integrations: [
partytown({
config: {
// 옵션은 여기에 추가합니다.
},
}),
],
});

이는 Partytown 구성 객체를 미러링합니다.

Partytown에는 debug 모드가 포함되어 있습니다. config.debugtrue 또는 false를 전달하여 활성화하거나 비활성화합니다. debug 모드가 활성화되면 브라우저 콘솔에 자세한 로그가 출력됩니다.

기본적으로 이 옵션을 설정하지 않으면 dev 모드나 preview 모드에서 디버그 모드가 켜집니다.

astro.config.mjs
export default defineConfig({
// ...
integrations: [
partytown({
// 예: 디버그 모드를 비활성화합니다.
config: { debug: false },
}),
],
});

타사 스크립트는 일반적으로 window 객체에 변수를 추가하므로 사이트 전체에서 해당 객체와 통신할 수 있습니다. 그러나 웹 워커에 스크립트가 로드되면 해당 전역 window 객체에 액세스할 수 없습니다.

이 문제를 해결하기 위해 Partytown은 전역 window 객체에 변수를 “patch”하고 이를 적절한 스크립트로 전달할 수 있습니다.

config.forward 옵션을 사용하여 전달할 변수를 지정할 수 있습니다. Partytown 문서에서 자세히 알아보세요.

astro.config.mjs
export default defineConfig({
// ...
integrations: [
partytown({
// 예: dataLayer.push를 forwarding-event로 추가합니다.
config: {
forward: ['dataLayer.push'],
},
}),
],
});

더 많은 통합

UI 프레임워크

SSR 어댑터

기타 통합

기여하기

여러분의 생각을 들려주세요!

GitHub Issue 생성

우리에게 가장 빨리 문제를 알려줄 수 있어요.

커뮤니티