- Updated dependencies:
@remix-run/react@2.9.2
@remix-run/node@2.9.2
- Updated dependencies:
@remix-run/react@2.9.1
@remix-run/node@2.9.1
-
New
future.unstable_singleFetch
flag (#8773)- Naked objects returned from loaders/actions are no longer automatically converted to JSON responses. They'll be streamed as-is via
turbo-stream
soDate
's will becomeDate
throughuseLoaderData()
- You can return naked objects with
Promise
's without needing to usedefer()
- including nestedPromise
's- If you need to return a custom status code or custom response headers, you can still use the
defer
utility
- If you need to return a custom status code or custom response headers, you can still use the
<RemixServer abortDelay>
is no longer used. Instead, you shouldexport const streamTimeout
fromentry.server.tsx
and the remix server runtime will use that as the delay to abort the streamed response- If you export your own streamTimeout, you should decouple that from aborting the react
renderToPipeableStream
. You should always ensure that react is aborted afer the stream is aborted so that abort rejections can be flushed down
- If you export your own streamTimeout, you should decouple that from aborting the react
- Actions no longer automatically revalidate on 4xx/5xx responses (via RR
future.unstable_skipActionErrorRevalidation
flag) - you can return a 2xx to opt-into revalidation or useshouldRevalidate
- Naked objects returned from loaders/actions are no longer automatically converted to JSON responses. They'll be streamed as-is via
- Updated dependencies:
@remix-run/node@2.9.0
@remix-run/react@2.9.0
- Updated dependencies:
@remix-run/react@2.8.1
@remix-run/node@2.8.1
- Updated dependencies:
@remix-run/react@2.8.0
@remix-run/node@2.8.0
- Updated dependencies:
@remix-run/node@2.7.2
@remix-run/react@2.7.2
- Updated dependencies:
@remix-run/node@2.7.1
@remix-run/react@2.7.1
- Updated dependencies:
@remix-run/react@2.7.0
@remix-run/node@2.7.0
- Updated dependencies:
@remix-run/react@2.6.0
@remix-run/node@2.6.0
- Updated dependencies:
@remix-run/react@2.5.1
@remix-run/node@2.5.1
-
Add unstable support for "SPA Mode" (#8457)
You can opt into SPA Mode by setting
unstable_ssr: false
in your Remix Vite plugin config:// vite.config.ts import { unstable_vitePlugin as remix } from "@remix-run/dev"; import { defineConfig } from "vite"; export default defineConfig({ plugins: [remix({ unstable_ssr: false })], });
Development in SPA Mode is just like a normal Remix app, and still uses the Remix dev server for HMR/HDR:
remix vite:dev
Building in SPA Mode will generate an
index.html
file in your client assets directory:remix vite:build
To run your SPA, you serve your client assets directory via an HTTP server:
npx http-server build/client
For more information, please refer to the SPA Mode docs.
- Updated dependencies:
@remix-run/react@2.5.0
@remix-run/node@2.5.0
- Updated dependencies:
@remix-run/react@2.4.1
@remix-run/node@2.4.1
- Add support for
clientLoader
/clientAction
/HydrateFallback
route exports (RFC). (#8173) - Add a new
future.v3_relativeSplatPath
flag to implement a breaking bug fix to relative routing when inside a splat route. For more information, please see the React Router6.21.0
Release Notes and theuseResolvedPath
docs. (#8216)
- Updated dependencies:
@remix-run/react@2.4.0
@remix-run/node@2.4.0
- Updated dependencies:
@remix-run/react@2.3.1
@remix-run/node@2.3.1
- Updated dependencies:
@remix-run/react@2.3.0
@remix-run/node@2.3.0
- Unstable Vite support for Node-based Remix apps (#7590)
remix build
👉vite build && vite build --ssr
remix dev
👉vite dev
- Other runtimes (e.g. Deno, Cloudflare) not yet supported.
- See "Future > Vite" in the Remix Docs for details
- Updated dependencies:
@remix-run/react@2.2.0
@remix-run/node@2.2.0
- Remove the
unstable_
prefix fromcreateRemixStub
- after real-world experience, we're confident in the API and ready to commit to it (#7647)- Note: This involves 1 small breaking change. The
<RemixStub remixConfigFuture>
prop has been renamed to<RemixStub future>
- Note: This involves 1 small breaking change. The
- Updated dependencies:
@remix-run/react@2.1.0
@remix-run/node@2.1.0
- Updated dependencies:
@remix-run/react@2.0.1
@remix-run/node@2.0.1
-
Drop React 17 support (#7121)
-
Require Node >=18.0.0 (#6939)
-
Remove
v2_normalizeFormMethod
future flag - allformMethod
values will be normalized in v2 (#6875) -
Remove
v2_routeConvention
flag - the flat route file convention is now standard (#6969) -
Remove
v2_headers
flag - it is now the default behavior to use the deepestheaders
function in the route tree (#6979) -
Remove
v2_errorBoundary
flag andCatchBoundary
implementation (#6906) -
The route
meta
API now defaults to the new "V2 Meta" API (#6958)- Please refer to the (docs and Preparing for V2 guide for more information.
-
Promote the
future.v2_dev
flag inremix.config.js
to a root leveldev
config (#7002) -
Removed support for "magic exports" from the
remix
package. This package can be removed from yourpackage.json
and you should update all imports to use the source@remix-run/*
packages: (#6895)- import type { ActionArgs } from "remix"; - import { json, useLoaderData } from "remix"; + import type { ActionArgs } from "@remix-run/node"; + import { json } from "@remix-run/node"; + import { useLoaderData } from "@remix-run/react";
unstable_createRemixStub
now supports addingmeta
/links
functions on stubbed Remix routes (#7186)⚠️ unstable_createRemixStub
no longer supports theelement
/errorElement
properties on routes. You must useComponent
/ErrorBoundary
to match what you would export from a Remix route module.
- Update Remix to use React Router
route.lazy
for module loading (#7133)
- Fix types for
StubRouteObject
children
property (#7098) - Updated dependencies:
@remix-run/react@2.0.0
@remix-run/node@2.0.0
react-router-dom@6.16.0
@remix-run/router@1.9.0
- Updated dependencies:
@remix-run/node@1.19.3
@remix-run/react@1.19.3
- Updated dependencies:
@remix-run/node@1.19.2
@remix-run/react@1.19.2
- Updated dependencies:
@remix-run/node@1.19.1
@remix-run/react@1.19.1
- Bump RR 6.14.2 (#6854)
- Updated dependencies:
@remix-run/react@1.19.0
@remix-run/node@1.19.0
react-router-dom@6.14.2
@remix-run/router@1.7.2
- Updated dependencies:
@remix-run/react@1.18.1
@remix-run/node@1.18.1
react-router-dom@6.14.1
@remix-run/router@1.7.1
- stabilize v2 dev server (#6615)
- Updated dependencies:
@remix-run/react@1.18.0
@remix-run/node@1.18.0
- Updated dependencies:
react-router-dom@6.13.0
@remix-run/react@1.17.1
@remix-run/node@1.17.1
- Updated dependencies:
@remix-run/react@1.17.0
@remix-run/node@1.17.0
react-router-dom@6.12.0
@remix-run/router@1.6.3
- Updated dependencies:
@remix-run/react@1.16.1
@remix-run/node@1.16.1
-
Enable support for CSS Modules, Vanilla Extract and CSS side-effect imports (#6046)
These CSS bundling features were previously only available via
future.unstable_cssModules
,future.unstable_vanillaExtract
andfuture.unstable_cssSideEffectImports
options inremix.config.js
, but they have now been stabilized.In order to use these features, check out our guide to CSS bundling in your project.
- feat(remix-testing): cast types to use Remix type definitions + allow passing context (#6065)
- Updated dependencies:
react-router-dom@6.11.0
@remix-run/router@1.6.0
@remix-run/react@1.16.0
@remix-run/node@1.16.0
- Bumped React Router dependencies to the latest version. See the release notes for more details. (
e14699547
) - Updated dependencies:
@remix-run/react@1.15.0
@remix-run/node@1.15.0
- Updated dependencies:
@remix-run/node@1.14.3
@remix-run/react@1.14.3
- Updated dependencies:
@remix-run/node@1.14.2
@remix-run/react@1.14.2
- Updated dependencies:
@remix-run/react@1.14.1
@remix-run/node@1.14.1
- Updated dependencies:
@remix-run/react@1.14.0
@remix-run/node@1.14.0
@remix-run/router@1.3.3
react-router-dom@8.6.2
- Add built-in support for PostCSS via the
future.unstable_postcss
feature flag (#5229) - Add built-in support for Tailwind via the
future.unstable_tailwind
feature flag (#5229)
- Bump React Router dependencies to the latest version. See the release notes for more details. (#5389)
- Updated dependencies:
@remix-run/react@1.13.0
@remix-run/node@1.13.0
- Ensure all routes have IDs when using the
createRemixStub
testing helper (#5128) - Bump React Router dependencies to the latest version. See the release notes for more details. (#5242)
- Updated dependencies:
@remix-run/react@1.12.0
@remix-run/node@1.12.0
- Updated dependencies:
@remix-run/node@1.11.1
@remix-run/react@1.11.1
- Added support for Vanilla Extract via the
unstable_vanillaExtract
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#5040) - Add support for CSS side-effect imports via the
unstable_cssSideEffectImports
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#4919) - Add support for CSS Modules via the
unstable_cssModules
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#4852)
-
Introduces the
defer()
API from@remix-run/router
with support for server-rendering and HTTP streaming. This utility allows you to defer values returned fromloader
functions by returning promises instead of resolved values. This has been refered to as "sending a promise over the wire". (#4920)Informational Resources:
- https://gist.github.com/jacob-ebey/9bde9546c1aafaa6bc8c242054b1be26
- https://github.com/remix-run/remix/blob/main/decisions/0004-streaming-apis.md
Documentation Resources (better docs specific to Remix are in the works):
-
Updated dependencies:
@remix-run/react@1.11.0
@remix-run/node@1.11.0
- Updated dependencies:
@remix-run/react@1.10.1
@remix-run/node@1.10.1
- Remove internal
installGlobals
function now that@remix-run/web-form-data
includes support for passing aHTMLFormElement
(#4755) - Use React Router data APIs directly (#4915)
- Updated dependencies:
@remix-run/react@1.10.0
@remix-run/node@1.10.0
- Updated dependencies:
@remix-run/react@1.9.0
@remix-run/server-runtime@1.9.0
@remix-run/node@1.9.0