@astrojs/preact
4.1.0
Minor Changes
Node.js 18 has now reached end-of-life and should not be used. For now, Astro will continue to support Node.js 18.20.8, which is the final LTS release of Node.js 18, as well as Node.js 20 and Node.js 22 or later. We will drop support for Node.js 18 in a future release, so we recommend upgrading to Node.js 22 as soon as possible. See Astro's Node.js support policy for more details.
:warning: Important note for users of Cloudflare Pages: The current build image for Cloudflare Pages uses Node.js 18.17.1 by default, which is no longer supported by Astro. If you are using Cloudflare Pages you should override the default Node.js version to Node.js 22. This does not affect users of Cloudflare Workers, which uses Node.js 22 by default.
4.0.11
Patch Changes
- #13731
c3e80c2
Thanks @jsparkdev! - update vite to latest version for fixing CVE
4.0.10
Patch Changes
- #13591
5dd2d3f
Thanks @florian-lefebvre! - Removes unused code
4.0.9
Patch Changes
-
#13596
3752519
Thanks @jsparkdev! - update vite to latest version to fix CVE -
#13547
360cb91
Thanks @jsparkdev! - Updates vite to the latest version
4.0.8
Patch Changes
- #13526
ff9d69e
Thanks @jsparkdev! - updatevite
to the latest version
4.0.7
Patch Changes
- #13505
a98ae5b
Thanks @ematipico! - Updates the dependencyvite
to the latest.
4.0.6
Patch Changes
4.0.5
Patch Changes
- #13323
80926fa
Thanks @ematipico! - Updatesesbuild
andvite
to the latest to avoid false positives audits warnings caused byesbuild
.
4.0.4
Patch Changes
4.0.3
Patch Changes
4.0.2
Patch Changes
- #12887
ea603ae
Thanks @louisescher! - Adds a warning message when multiple JSX-based UI frameworks are being used without either theinclude
orexclude
property being set on the integration.
4.0.1
Patch Changes
4.0.0
Major Changes
Minor Changes
4.0.0-beta.1
Major Changes
Minor Changes
3.5.4
Patch Changes
- #12481
8a46e80
Thanks @marbrex! - Resolvevite
peer dependency problem for strict package managers like Yarn in PnP mode.
3.5.3
Patch Changes
- #11930
4a44e82
Thanks @lukasbachlechner! - Preact components no longer throw an error if a property is null.
3.5.2
Patch Changes
- #11834
5f2536b
Thanks @ph1p! - Preact signals are now serialized correctly in arrays when they are given to components.
3.5.1
Patch Changes
- #11464
2cdb685
Thanks @rschristian! - Swap outpreact-ssr-prepass
forrenderToStringAsync
frompreact-render-to-string
3.5.0
Minor Changes
- #11234
4385bf7
Thanks @ematipico! - Adds a new function calledaddServerRenderer
to the Container API. Use this function to manually store renderers inside the instance of your container.
This new function should be preferred when using the Container API in environments like on-demand pages:
```ts import type { APIRoute } from 'astro'; import { experimental_AstroContainer } from 'astro/container'; import reactRenderer from '@astrojs/react/server.js'; import vueRenderer from '@astrojs/vue/server.js'; import ReactComponent from '../components/button.jsx'; import VueComponent from '../components/button.vue';
// MDX runtime is contained inside the Astro core import mdxRenderer from 'astro/jsx/server.js';
// In case you need to import a custom renderer import customRenderer from '../renderers/customRenderer.js';
export const GET: APIRoute = async (ctx) => { const container = await experimental_AstroContainer.create(); container.addServerRenderer({ renderer: reactRenderer }); container.addServerRenderer({ renderer: vueRenderer }); container.addServerRenderer({ renderer: customRenderer }); // You can pass a custom name too container.addServerRenderer({ name: 'customRenderer', renderer: customRenderer, }); const vueComponent = await container.renderToString(VueComponent); return await container.renderToResponse(Component); }; ```
3.4.0
Minor Changes
- #11144
803dd80
Thanks @ematipico! - The integration now exposes a function calledgetContainerRenderer
, that can be used inside the Container APIs to load the relative renderer.
```js import { experimental_AstroContainer as AstroContainer } from 'astro/container'; import ReactWrapper from '../src/components/ReactWrapper.astro'; import { loadRenderers } from 'astro:container'; import { getContainerRenderer } from '@astrojs/react';
test('ReactWrapper with react renderer', async () => { const renderers = await loadRenderers([getContainerRenderer()]); const container = await AstroContainer.create({ renderers, }); const result = await container.renderToString(ReactWrapper);
expect(result).toContain('Counter');
expect(result).toContain('Count: <!-- -->5');
}); ```
3.3.0
Minor Changes
- #10938
fd508a0
Thanks @florian-lefebvre! - Adds adevtools
option
You can enable Preact devtools in development by setting devtools: true
in your preact()
integration config:
```js import { defineConfig } from 'astro/config'; import preact from '@astrojs/preact';
export default defineConfig({ integrations: [preact({ devtools: true })], }); ```
3.2.0
Minor Changes
- #10689
683d51a5eecafbbfbfed3910a3f1fbf0b3531b99
Thanks @ematipico! - Deprecate support for versions of Node.js older thanv18.17.1
for Node.js 18, older thanv20.0.3
for Node.js 20, and the complete Node.js v19 release line.
This change is in line with Astro's Node.js support policy.
3.1.2
Patch Changes
- #10585
ad50784adc6f262fc563999e97df3a5dc9087c88
Thanks @rschristian! - Fixes (theoretical) edge case in Preact integration's JSX aliases
3.1.1
Patch Changes
- #10200
c692d0c66a5062937e47402dc700d41c2a5dfc5c
Thanks @Princesseuh! - Fixes passing children to server-rendered components causing an error
3.1.0
Minor Changes
- #9524
0903ef90494e9c8bd0272347a0cdd51eca7f4648
Thanks @aleksandrjet! - Allows rendering lazy components.
You can now use lazy components with Suspense:
```jsx import { lazy, Suspense } from 'preact/compat';
const HeavyComponent = lazy(() => import('./HeavyComponent'));
const Component = () => {
return (
3.0.2
Patch Changes
-
#9482
72b26daf694b213918f02d0fcbf90ab5b7ebc31f
Thanks @natemoo-re! - Improves compatibility with the Qwik adapter -
#9479
1baf0b0d3cbd0564954c2366a7278794fad6726e
Thanks @sarah11918! - Updates README
3.0.1
Patch Changes
- #8737
6f60da805
Thanks @ematipico! - Add provenance statement when publishing the library from CI
3.0.0
Major Changes
-
#8188
d0679a666
Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023. -
#8179
6011d52d3
Thanks @matthewp! - Astro 3.0 Release Candidate -
#7924
519a1c4e8
Thanks @matthewp! - Newinclude
andexclude
config options
The Preact integration now has new include
and exclude
config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and exclude
does the opposite.
Patch Changes
- #8264
1f58a7a1b
Thanks @natemoo-re! - Automatically unmount islands whenastro:unmount
is fired
3.0.0-rc.3
Patch Changes
- #8264
1f58a7a1b
Thanks @natemoo-re! - Automatically unmount islands whenastro:unmount
is fired
3.0.0-rc.2
Major Changes
3.0.0-beta.1
Major Changes
The Preact integration now has new include
and exclude
config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and exclude
does the opposite.
3.0.0-beta.0
Major Changes
1eae2e3f7
Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
2.2.2
Patch Changes
- #8007
58b121d42
Thanks @paperdave! - Support Bun by adjusting how@babel/plugin-transform-react-jsx
is imported.
2.2.1
Patch Changes
2.2.0
Minor Changes
This change introduces a new flag that renderers can add called supportsAstroStaticSlot
. What this does is let Astro know that the render is sending <astro-static-slot>
as placeholder values for static (non-hydrated) slots which Astro will then remove.
This change is completely backwards compatible, but fixes bugs caused by combining ssr-only and client-side framework components like so:
astro
<Component>
<div>
<Component client:load>
<span>Nested</span>
</Component>
</div>
</Component>
Patch Changes
2.1.0
Minor Changes
- #6213
afbbc4d5b
Thanks @Princesseuh! - Updated compilation settings to disable downlevelling for Node 14
2.0.3
Patch Changes
2.0.2
Patch Changes
2.0.1
Patch Changes
2.0.0
Major Changes
- #5782
1f92d64ea
Thanks @Princesseuh! - Remove support for Node 14. Minimum supported Node version is now >=16.12.0
2.0.0-beta.0
See changes in 2.0.0-beta.0
### Major Changes - [#5782](https://github.com/withastro/astro/pull/5782) [`1f92d64ea`](https://github.com/withastro/astro/commit/1f92d64ea35c03fec43aff64eaf704dc5a9eb30a) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Remove support for Node 14. Minimum supported Node version is now >=16.12.01.2.0
Minor Changes
This makes it possible to share client state between Preact islands via signals.
For example, you can create a signals in an Astro component and then pass it to multiple islands:
```astro
// Component Imports import Counter from '../components/Counter'; import { signal } from '@preact/signals'; const count = signal(0);
1.1.1
Patch Changes
- #4842
812658ad2
Thanks @bluwy! - Add missing dependencies, support strict dependency installation (e.g. pnpm)
1.1.0
Minor Changes
- #4515
999250d65
Thanks @marvinhagemeister! - Automatically set up Preact DevTools bridge when runningastro dev
.
1.0.2
Patch Changes
1.0.1
Patch Changes
1.0.0
Major Changes
04ad44563
- > Astro v1.0 is out! Read the official announcement post.
No breaking changes. This package is now officially stable and compatible with astro@1.0.0
!
0.5.2
Patch Changes
0.5.1
Patch Changes
0.5.0
Minor Changes
- #3914
b48767985
Thanks @ran-dall! - Rollback supportednode@16
version. Minimum versions are nownode@14.20.0
ornode@16.14.0
.
0.4.1
Patch Changes
0.4.0
Minor Changes
- #3871
1cc5b7890
Thanks @natemoo-re! - Update supportednode
versions. Minimum versions are nownode@14.20.0
ornode@16.16.0
.
0.3.2
Patch Changes
- #3854
b012ee55
Thanks @bholmesdev! - [astro add] Support adapters and third party packages
0.3.1
Patch Changes
- #3769
b934ab5d
Thanks @hippotastic! - Fix "Invalid hook call" warning
0.3.0
Minor Changes
To use preact/compat
to render React components, users can now set compat
to true
when using the Preact integration:
js
integrations: [
preact({ compat: true }),
],
0.2.0
Minor Changes
- #3652
7373d61c
Thanks @natemoo-re! - Add support for passing named slots from.astro
=> framework components.
Each slot
is be passed as a top-level prop. For example:
```jsx
// From .astro
Hello world!
Dash
// For .jsx export default function Component({ title, slotWithDash, children }) { return ( <>
); } ```
0.1.3
Patch Changes
- #3455
e9a77d86
Thanks @natemoo-re! - Update client hydration to check forssr
attribute. Requiresastro@^1.0.0-beta.36
.
0.1.2
Patch Changes
- #3166
70263cf7
Thanks @natemoo-re! - Fix integration to use updateConfig rather than returning a partial config object
0.1.1
Patch Changes
815d62f1
Thanks @FredKSchott! - no changes.
0.1.0
Minor Changes
- #2979
9d7a4b59
Thanks @FredKSchott! - Welcome to the Astro v1.0.0 Beta! Read the official announcement for more details.
0.0.2
Patch Changes
-
#2885
6b004363
Thanks @bholmesdev! - Add README across Astro built-in integrations -
#2847
3b621f7a
Thanks @tony-sull! - Adds keywords to the official integrations to support discoverability on Astro's Integrations site -
#2872
098f6f6b
Thanks @bholmesdev! - FixisSelfAccepting
errors when using the Preact integration with the Astro dev server
0.0.2-next.1
Patch Changes
- #2872
098f6f6b
Thanks @bholmesdev! - FixisSelfAccepting
errors when using the Preact integration with the Astro dev server
0.0.2-next.0
Patch Changes
- #2847
3b621f7a
Thanks @tony-sull! - Adds keywords to the official integrations to support discoverability on Astro's Integrations site