On this page
Use Bun with Astro
Bun is an all-in-one JavaScript runtime & toolkit. See Bun’s documentation for more information.
Prerequisites
- Bun installed locally on your machine. See the installation instructions in Bun’s official documentation.
Create a new Astro project with Bun
Create a new Astro project with Bun using the following create-astro
command:
Install dependencies
If you’re starting a new project using bunx create-astro
, the CLI will automatically use Bun to install dependencies and you can skip this step.
Otherwise, you’ll need to install your dependencies with Bun:
Add Types
Bun publishes the bun-types
package, containing the runtime types for Bun.
Install bun-types
using the following command:
Add the package to your types in tsconfig.json
Using Astro integrations
You can also use any of the official Astro integrations with the astro add
command:
Run Astro with Bun
Run the development server
To run the development server using Bun as the runtime, use the following command:
Building your site with Bun
To build your site using Bun as the runtime, use the following command:
Astro will output your site to the dist/
directory. Then, you can serve your site using the preview
command:
Add SSR with Bun using @astrojs/node
Bun features Node.js API compatibility. Using the @astrojs/node
adapter you can add server-side rendering to your Astro project using Bun’s runtime as a replacement for Node.
Run the following command to add the Node.js adapter to your Astro project:
Build your site again, using the same build command as above:
Finally, use the following command to run your built site.
Official Resources
Community Resources
Using Bun with Astro? Add your blog post or video to this page!
- Building a Cloudflare Pages site with Bun - blog post
More recipes
-
Share State Between Islands
Learn how to share state across framework components with Nano Stores.
-
Add an RSS feed
Add an RSS feed to your Astro site to let users subscribe to your content.
-
Installing a Vite or Rollup plugin
Learn how you can import YAML data by adding a Rollup plugin to your project.
-
Build Forms With API Routes
Learn how to use JavaScript to send form submissions to an API Route
-
Build HTML Forms in Astro Pages
Learn how to build HTML forms and handle submissions in your frontmatter
-
Use Bun with Astro
Learn how to use Bun with your Astro site.
-
Call endpoints from the server
Learn how to call endpoints from the server in Astro.
-
Verify a Captcha
Learn how to create an API route and fetch it from the client.
-
Build your Astro Site with Docker
Learn how to build your Astro site using Docker.
-
Add icons to external links
Learn how to install a rehype plugin to add icons to external links in your Markdown files
-
Add i18n features
Use dynamic routing and content collections to add internationalization support to your Astro site.
-
Add Last Modified Time
Build a remark plugin to add the last modified time to your Markdown and MDX.
-
Add Reading Time
Build a remark plugin to add reading time to your Markdown or MDX files.
-
Share State Between Astro Components
Learn how to share state across Astro components with Nano Stores.
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/recipes/bun/