@astrojs/partytown
This Astro integration enables Partytown in your Astro project.
Why Astro Partytown
Section titled Why Astro PartytownPartytown is a lazy-loaded library to help relocate resource intensive scripts into a web worker, and off of the main thread.
If you’re using third-party scripts for things like analytics or ads, Partytown is a great way to make sure that they don’t slow down your site.
The Astro Partytown integration installs Partytown for you and makes sure it’s enabled on all of your pages.
Installation
Section titled InstallationQuick Install
Section titled Quick InstallThe astro add
command-line tool automates the installation for you. Run one of the following commands in a new terminal window. (If you aren’t sure which package manager you’re using, run the first command.) Then, follow the prompts, and type “y” in the terminal (meaning “yes”) for each one.
If you run into any issues, feel free to report them to us on GitHub and try the manual installation steps below.
Manual Install
Section titled Manual InstallFirst, install the @astrojs/partytown
package using your package manager. If you’re using npm or aren’t sure, run this in the terminal:
Then, apply this integration to your astro.config.*
file using the integrations
property:
Usage
Section titled UsagePartytown should be ready to go with zero config. If you have an existing 3rd party script on your site, try adding the type="text/partytown"
attribute:
If you open the “Network” tab from your browser’s dev tools, you should see the partytown
proxy intercepting this request.
Configuration
Section titled ConfigurationTo configure this integration, pass a ‘config’ object to the partytown()
function call in astro.config.mjs
.
This mirrors the Partytown config object, but only debug
and forward
are exposed by this integration.
config.debug
Section titled config.debugPartytown ships with a debug
mode; enable or disable it by passing true
or false
to config.debug
. If debug
mode is enabled, it will output detailed logs to the browser console.
If this option isn’t set, debug
mode will be on by default in dev or preview mode.
config.forward
Section titled config.forwardThird-party scripts typically add variables to the window
object so that you can communicate with them throughout your site. But when a script is loaded in a web-worker, it doesn’t have access to that global window
object.
To solve this, Partytown can “patch” variables to the global window object and forward them to the appropriate script.
You can specify which variables to forward with the config.forward
option. Read more in Partytown’s documentation.
Examples
Section titled Examples- Browse projects with Astro Partytown on GitHub for more examples!
Troubleshooting
Section titled TroubleshootingFor help, check out the #support
channel on Discord. Our friendly Support Squad members are here to help!
You can also check our Astro Integration Documentation for more on integrations.
Contributing
Section titled ContributingThis package is maintained by Astro’s Core team. You’re welcome to submit an issue or PR!
Changelog
Section titled ChangelogSee CHANGELOG.md for a history of changes to this integration.