@remix-run/eslint-config
Advanced tools
Changelog
v2.9.1
Date: 2024-04-24
@remix-run/dev
- Fix issue where consumers who had added Remix packages to Vite's ssr.noExternal
option were being overridden by the Remix Vite plugin adding Remix packages to Vite's ssr.external
option (#9301)@remix-run/react
- Ignore future/*.d.ts
files from TS build (#9299)Full Changelog: v2.9.0...v2.9.1
Changelog
v2.9.0
Date: 2024-04-23
2.9.0
introduces a future.unstable_singleFetch
flag to enable to Single Fetch behavior (RFC) in your Remix application. Please refer to the docs for the full detail but the high-level changes to be aware of include:
loader
/action
functions are no longer automatically serialized to JSON responses
turbo-stream
which allows direct serialization of more complex types such as Promise
, Date
, Map
instances, and moretsconfig.json
's compilerOptions.types
array to infer types properly when using Single Fetchheaders
export is no longer used when Single Fetch is enabled in favor of a new response
stub passed to your loader
/action
functionsjson
/defer
/redirect
utilities are deprecated when using Single Fetch (but still work mostly the same)4xx
/5xx
responses - you can return a 2xx
to opt-into revalidation or use shouldRevalidate
[!IMPORTANT] Single Fetch requires using
undici
as your fetch polyfill, or using the built-in fetch on Node 20+, because it relies on APIs available there but not in the@remix-run/web-fetch
polyfill. Please refer to the Undici section below for more details.
- If you are managing your own server and calling
installGlobals()
, you will need to callinstallGlobals({ nativeFetch: true })
to avoid runtime errors when using Single Fetch- If you are using
remix-serve
, it will useundici
automatically if Single Fetch is enabled
Remix 2.9.0
adds a new installGlobals({ nativeFetch: true })
flag to opt into using undici
for the Web Fetch polyfills instead of the @remix-run/web-*
packages. This change has a few primary benefits:
undici
, so beware of "breaking bug fixes" and keep an eye on any advanced fetch
API interactions you're performing in your appundici
may have different behavior by design -- most notably, undici
's garbage collection behavior differs and you are required to consume all fetch response bodies to avoid a memory leak in your appundici
is the fetch implementation used by node
internally, it should better prepare Remix apps to more smoothly drop the polyfill to use the built-in Node.js APIs on node
20+future.unstable_singleFetch
flag (#8773, #9073, #9084, #9272)@remix-run/node
- Add a new installGlobals({ nativeFetch: true })
flag to opt-into using undici
as the fetch polyfill instead of @remix-run/web-*
(#9106, #9111, #9198)@remix-run/server-runtime
- Add ResponseStub
header interface and deprecate the headers
export when Single Fetch is enabled (#9142)create-remix
- Allow .
in repo name when using --template
flag (#9026)@remix-run/dev
- Improve getDependenciesToBundle
resolution in monorepos (#8848)@remix-run/dev
- Fix SPA mode when Single Fetch is enabled by using streaming entry.server
(#9063)@remix-run/dev
- Vite: added sourcemap support for transformed routes (#8970)@remix-run/dev
- Update links printed to the console by the Remix CLI/Dev Server to point to updated docs locations (#9176)@remix-run/server-runtime
- Handle redirects created by handleDataRequest
(#9104)create-remix
@remix-run/architect
@remix-run/cloudflare
@remix-run/cloudflare-pages
@remix-run/cloudflare-workers
@remix-run/css-bundle
@remix-run/deno
@remix-run/dev
@remix-run/eslint-config
@remix-run/express
@remix-run/node
@remix-run/react
@remix-run/serve
@remix-run/server-runtime
@remix-run/testing
Full Changelog: v2.8.1...v2.9.0