- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Remove single_fetch future flag. (#11522)
- update minimum node version to 18 (#11690)
- Add
exports
field to all packages (#11675) - node package no longer re-exports from react-router (#11702)
-
Update
express.static
configurations to support prerendering (#11547)- Assets in the
build/client/assets
folder are served as before, with a 1-year immutableCache-Control
header - Static files outside of assets, such as pre-rendered
.html
and.data
files are not served with a specificCache-Control
header .data
files are served withContent-Type: text/x-turbo
- For some reason, when adding this via
express.static
, it seems to also add aCache-Control: public, max-age=0
to.data
files
- For some reason, when adding this via
- Assets in the
-
Updated dependencies:
[email protected]
@react-router/[email protected]
@react-router/[email protected]
- Put
undici
fetch polyfill behind a newinstallGlobals({ nativeFetch: true })
parameter (#9198)remix-serve
will default to usingundici
for the fetch polyfill iffuture.unstable_singleFetch
is enabled because the single fetch implementation relies on theundici
polyfill- Any users opting into Single Fetch and managing their own polyfill will need to pass the flag to
installGlobals
on their own to avoid runtime errors with Single Fetch
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Don't try to load sourcemaps if they don't exist on disk (#8446)
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Use node
fileURLToPath
to convert source map URL to path (#8321) - Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Fix source map loading when file has
?t=timestamp
suffix (rebuilds) (#8174) - Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Fix HMR for CJS projects using
remix-serve
and manual mode (remix dev --manual
) (#7487)- By explicitly busting the
require
cache,remix-serve
now correctly re-imports new server changes in CJS - ESM projects were already working correctly and are not affected by this.
- By explicitly busting the
- Fix error caused by partially written server build (#7470)
- Previously, it was possible to trigger a reimport of the app server code before the new server build had completely been written. Reimporting the partially written server build caused issues related to
build.assets
being undefined and crashing when readingbuild.assets.version
- Previously, it was possible to trigger a reimport of the app server code before the new server build had completely been written. Reimporting the partially written server build caused issues related to
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
-
remix-serve
now picks an open port if 3000 is taken (#7278)- If
PORT
env var is set,remix-serve
will use that port - Otherwise,
remix-serve
picks an open port (3000 unless that is already taken)
- If
-
Integrate manual mode in
remix-serve
(#7231) -
Remove undocumented
createApp
Node API (#7229)remix-serve
is a CLI, not a library
-
Require Node >=18.0.0 (#6939)
-
Promote the
future.v2_dev
flag inremix.config.js
to a root leveldev
config (#7002) -
Default to
serverModuleFormat: "esm"
and updateremix-serve
to use dynamic import to support ESM and CJS build outputs (#6949) -
Preserve dynamic imports in
remix-serve
for external bundle (#7173) -
For preparation of using Node's built in fetch implementation, installing the fetch globals is now a responsibility of the app server (#7009)
-
If you are using
remix-serve
, nothing is required -
If you are using your own app server, you will need to install the globals yourself
import { installGlobals } from "@remix-run/node"; installGlobals();
-
-
source-map-support
is now a responsibility of the app server (#7009)-
If you are using
remix-serve
, nothing is required -
If you are using your own app server, you will need to install
source-map-support
yourself.npm i source-map-support
import sourceMapSupport from "source-map-support"; sourceMapSupport.install();
-
- Update
remix-serve
usage error message to support ESM projects (#7400) - Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Install
source-map-support
(#7039) - Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- stabilize v2 dev server (#6615)
- fix(types): better tuple serialization types (#6616)
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
-
Add
HeadersArgs
type to be consistent with loaders/actions/meta and allows for using afunction
declaration in addition to an arrow function expression (#6247)import type { HeadersArgs } from "@remix-run/node"; // or cloudflare/deno export function headers({ loaderHeaders }: HeadersArgs) { return { "x-my-custom-thing": loaderHeaders.get("x-my-custom-thing") || "fallback", }; }
-
Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- add
@remix-run/node/install
side-effect to allownode --require @remix-run/node/install
(#6132) - Updated dependencies:
@remix-run/[email protected]
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Allow configurable
NODE_ENV
withremix-serve
(#5540) - Sync
FutureConfig
interface between packages (#5398) - Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Added a new development server available in the Remix config under the
unstable_dev
flag. See the release notes for a full description. (#5133)
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
-
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/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Fix
TypedResponse
so that Typescript correctly shows errors for incompatible types inloader
andaction
functions. (#4734) - Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- We've added a new type:
SerializeFrom
. This is used to infer the (#4013) JSON-serialized return type of loaders and actions. MetaFunction
type can now inferdata
andparentsData
types from route loaders (#4022)
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies:
@remix-run/[email protected]
- Updated dependencies
@remix-run/[email protected]