npm @remix-run/node 1.5.0

latest releases: 0.0.0-nightly-6eb6acf3f-20240511, 2.9.2, 2.9.2-pre.2...
24 months ago

Welcome to version 1.5 of Remix. Can you believe that we are already 1.5 years versions old? Time flies when you're building fun web frameworks!

We've got a few things that we're excited to share with this one, so let's get started 💿 💿 💿

Official support for Deno

Your scientists were so preoccupied with whether they could that they didn't stop to think if they should.

Dr. Ian Malcolm, Jurassic Park


A short while ago we rolled out a new adapter with experimental support for building on top of Deno. At long last, the mad scientists at Remix are now ready to announce a major breakthrough:

Remix now officially supports Deno. 🦕

Apart from compiler-related changes, Deno support comes in the form of:

  1. a brand new @remix-run/deno package
  2. an updated Deno template (npx create-remix@latest --template deno)

We couldn't be more excited to see what Deno enables for your future Remix projects. Deno takes a very different approach than most other JS runtimes, and we learned some big lessons while implementing our adapter. For those curious, check out a some tricky Deno-related decisions we made along the way.

It was tough going at times, but as Dr. Malcolm would say: life the compiler finds a way 🦖

Moving closer to The Platform™

One of our driving forces with Remix is to use web standards and get to connect developers more closely to them with our APIs.

In the olden days, the only JavaScript runtime was the one implemented by browsers, but Node changed the game for everyone. In those days, many standards and APIs necessary to build a proper JS server runtime didn't exist, so the good folks working on Node had to invent them for us. Or in many cases we'd get "polyfills" for new standards from third-party libraries like node-fetch.

These were innovative times, and moving quickly allowed devs to ship more quickly. But inconsistency between runtimes also created a lot of problems. Thankfully we are getting closer than ever to consensus-driven solutions, and Remix is moving towards this new, more standardized approach.

We have removed our dependency on node-fetch and moved forward with our own implementation that gets closer to the living Fetch Standard. This opens the door to new features in your loaders and actions—you can now return ReadableStream in the body of your response, which allows you to stream data from your server and paves the way for the new streaming APIs in React 18.

This comes at an exciting time for the web, as just a few weeks ago we saw the formation of a new Web-interoperable Runtimes Community Group. We've never been more optimistic about the web, and we see this change as a necessary first step to embrace its future.


What's Changed

✨ Features

  • Replaced node-fetch with @remix-run/web-fetch for a more standards-based fetch implementation (#2736)
  • Launched official support for Deno (#3117)

💅 Enhancements

  • Made a few improvements in our experimental Netlify Edge adapter (#3107)

🐛 Bug fixes

  • Fixed support for JSX in .js route files (#3059)
  • Fixed issues with package manager detection (#3109)
  • Fixed the packageExports map (#3189)
  • Avoid duplicate loader calls when using prefetch-intent (#2938)

⚠️ Unstable API changes

  • unstable_parseMultipartFormData no longer operates on a Node.js stream, this has been changed to an AsyncIterable<Uint8Array> called data to bring this functionality to all platforms (#2736)
  • unstable_parseMultipartFormData no longer parses fields automatically for you; instead use unstable_composeUploadHandlers to combine multiple upload handlers (#2736)

New Contributors

Full Changelog: v1.4.3...v1.5.0

Don't miss a new node release

NewReleases is sending notifications on new releases.