- Updated dependencies:
react-router@7.1.0
@react-router/node@7.1.0
@react-router/express@7.1.0
- Updated dependencies:
react-router@7.0.2
@react-router/node@7.0.2
@react-router/express@7.0.2
- Updated dependencies:
react-router@7.0.1
@react-router/express@7.0.1
@react-router/node@7.0.1
- 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:
react-router@7.0.0
@react-router/express@7.0.0
@react-router/node@7.0.0
- 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/node@2.9.0
@remix-run/express@2.9.0
- Updated dependencies:
@remix-run/express@2.8.1
@remix-run/node@2.8.1
- Updated dependencies:
@remix-run/express@2.8.0
@remix-run/node@2.8.0
- Updated dependencies:
@remix-run/express@2.7.2
@remix-run/node@2.7.2
- Updated dependencies:
@remix-run/express@2.7.1
@remix-run/node@2.7.1
- Updated dependencies:
@remix-run/express@2.7.0
@remix-run/node@2.7.0
- Updated dependencies:
@remix-run/node@2.6.0
@remix-run/express@2.6.0
- Updated dependencies:
@remix-run/express@2.5.1
@remix-run/node@2.5.1
- Don't try to load sourcemaps if they don't exist on disk (#8446)
- Updated dependencies:
@remix-run/node@2.5.0
@remix-run/express@2.5.0
- Use node
fileURLToPath
to convert source map URL to path (#8321) - Updated dependencies:
@remix-run/node@2.4.1
@remix-run/express@2.4.1
- Fix source map loading when file has
?t=timestamp
suffix (rebuilds) (#8174) - Updated dependencies:
@remix-run/node@2.4.0
@remix-run/express@2.4.0
- Updated dependencies:
@remix-run/express@2.3.1
@remix-run/node@2.3.1
- Updated dependencies:
@remix-run/express@2.3.0
@remix-run/node@2.3.0
- Updated dependencies:
@remix-run/express@2.2.0
@remix-run/node@2.2.0
- Updated dependencies:
@remix-run/express@2.1.0
@remix-run/node@2.1.0
- 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/node@2.0.1
@remix-run/express@2.0.1
-
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/node@2.0.0
@remix-run/express@2.0.0
- Updated dependencies:
@remix-run/express@1.19.3
@remix-run/node@1.19.3
- Install
source-map-support
(#7039) - Updated dependencies:
@remix-run/node@1.19.2
@remix-run/express@1.19.2
- Updated dependencies:
@remix-run/express@1.19.1
@remix-run/node@1.19.1
- Updated dependencies:
@remix-run/node@1.19.0
@remix-run/express@1.19.0
- Updated dependencies:
@remix-run/node@1.18.1
@remix-run/express@1.18.1
- stabilize v2 dev server (#6615)
- fix(types): better tuple serialization types (#6616)
- Updated dependencies:
@remix-run/node@1.18.0
@remix-run/express@1.18.0
- Updated dependencies:
@remix-run/express@1.17.1
@remix-run/node@1.17.1
-
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/node@1.17.0
@remix-run/express@1.17.0
- Updated dependencies:
@remix-run/node@1.16.1
@remix-run/express@1.16.1
- add
@remix-run/node/install
side-effect to allownode --require @remix-run/node/install
(#6132) - Updated dependencies:
@remix-run/express@1.16.0
@remix-run/node@1.16.0
- Updated dependencies:
@remix-run/express@1.15.0
- Updated dependencies:
@remix-run/express@1.14.3
- Updated dependencies:
@remix-run/express@1.14.2
- Updated dependencies:
@remix-run/express@1.14.1
- Allow configurable
NODE_ENV
withremix-serve
(#5540) - Sync
FutureConfig
interface between packages (#5398) - Updated dependencies:
@remix-run/express@1.14.0
- Updated dependencies:
@remix-run/express@1.13.0
- 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/express@1.12.0
- Updated dependencies:
@remix-run/express@1.11.1
-
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/express@1.11.0
- Updated dependencies:
@remix-run/express@1.10.1
- Updated dependencies:
@remix-run/express@1.10.0
- Fix
TypedResponse
so that Typescript correctly shows errors for incompatible types inloader
andaction
functions. (#4734) - Updated dependencies:
@remix-run/express@1.9.0
- Updated dependencies:
@remix-run/express@1.8.2
- Updated dependencies:
@remix-run/express@1.8.1
- Updated dependencies:
@remix-run/express@1.8.0
- Updated dependencies:
@remix-run/express@1.7.6
- Updated dependencies:
@remix-run/express@1.7.5
- Updated dependencies:
@remix-run/express@1.7.4
- Updated dependencies:
@remix-run/express@1.7.3
- Updated dependencies:
@remix-run/express@1.7.2
- Updated dependencies:
@remix-run/express@1.7.1
- 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/express@1.7.0
- Updated dependencies:
@remix-run/express@1.6.8
- Updated dependencies:
@remix-run/express@1.6.7
- Updated dependencies:
@remix-run/express@1.6.6
- Updated dependencies
@remix-run/express@1.6.5