This Astro integration enables Partytown in your Astro project.
Why Astro PartytownSection titled Why Astro Partytown
Partytown 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.
InstallationSection titled Installation
Quick InstallSection titled Quick Install
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 InstallSection titled Manual Install
First, 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
UsageSection titled Usage
Partytown should be ready to go with zero config. If you have an existing 3rd party script on your site, try adding the
If you open the “Network” tab from your browser’s dev tools, you should see the
partytown proxy intercepting this request.
ConfigurationSection titled Configuration
To configure this integration, pass a ‘config’ object to the
partytown() function call in
This mirrors the Partytown config object, but only
forward are exposed by this integration.
config.debugSection titled config.debug
Partytown ships with a
debug mode; enable or disable it by passing
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.forwardSection titled config.forward
Third-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
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.
ExamplesSection titled Examples
- Browse projects with Astro Partytown on GitHub for more examples!
TroubleshootingSection titled Troubleshooting
For 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.
ContributingSection titled Contributing
This package is maintained by Astro’s Core team. You’re welcome to submit an issue or PR!
ChangelogSection titled Changelog
See CHANGELOG.md for a history of changes to this integration.