React

The Partytown NPM package already comes with a React component, which is a thin wrapper to the Partytown snippet. This React component should be usable from most React/Preact projects.

Install

npm install @qwik.dev/partytown
yarn add @qwik.dev/partytown
pnpm install @qwik.dev/partytown

Configure

The <Partytown/> component is imported from the @qwik.dev/partytown/react submodule. The config properties are JSX props.

Below is an example of setting the debug config to true, and forward config for Google Tag Manager.

import { Partytown } from "@qwik.dev/partytown/react";
 
export function Head() {
  return (
    <>
      <Partytown debug={true} forward={["dataLayer.push"]} />
    </>
  );
}

Partytown Script

Add the type="text/partytown" prop for each script that should run from a web worker. The example below is using the React specific way of inlining a script with dangerouslySetInnerHTML.

<script
  type="text/partytown"
  dangerouslySetInnerHTML={{
    __html: "/* Inlined Third-Party Script */",
  }}
/>

Copy Library Files

Copy library files to public/~partytown. How the files are copied or served from your site is up to each site's setup. A partytown copylib CLI copy task has been provided for convenience which helps copy the Partytown library files to the public directory. Below is an example of creating a "partytown" NPM script which could run before the build:

"scripts": {
  "partytown": "partytown copylib public/~partytown"
}