Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(deps): update remix monorepo to v1.19.3 (#347)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@remix-run/dev](https://remix.run) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-dev)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2fdev/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2fdev/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2fdev/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2fdev/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2fdev/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@remix-run/eslint-config](https://redirect.github.com/remix-run/remix) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-eslint-config)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2feslint-config/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2feslint-config/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2feslint-config/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2feslint-config/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2feslint-config/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@remix-run/netlify](https://redirect.github.com/remix-run/remix) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-netlify)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2fnetlify/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2fnetlify/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2fnetlify/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2fnetlify/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2fnetlify/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@remix-run/node](https://redirect.github.com/remix-run/remix) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-node)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2fnode/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2fnode/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2fnode/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2fnode/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2fnode/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@remix-run/react](https://redirect.github.com/remix-run/remix) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-react)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2freact/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2freact/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2freact/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2freact/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2freact/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@remix-run/serve](https://redirect.github.com/remix-run/remix) ([source](https://redirect.github.com/remix-run/remix/tree/HEAD/packages/remix-serve)) | [`1.15.0` -> `1.19.3`](https://renovatebot.com/diffs/npm/@remix-run%2fserve/1.15.0/1.19.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@remix-run%2fserve/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@remix-run%2fserve/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@remix-run%2fserve/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@remix-run%2fserve/1.15.0/1.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>remix-run/remix (@​remix-run/dev)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1193) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Show deprecation warning when using `devServerBroadcastDelay` and `devServerPort` config options ([#​7064](https://redirect.github.com/remix-run/remix/pull/7064)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1192) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Update `proxy-agent` to resolve npm audit security vulnerability ([#​7027](https://redirect.github.com/remix-run/remix/pull/7027)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1191) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Add a heartbeat ping to prevent the WebSocket connection from being closed due to inactivity when using a proxy like Cloudflare ([#​6904](https://redirect.github.com/remix-run/remix/pull/6904), [#​6927](https://redirect.github.com/remix-run/remix/pull/6927)) - Treeshake out HMR code from production builds ([#​6894](https://redirect.github.com/remix-run/remix/pull/6894)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1190) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - improved networking options for `v2_dev` ([#​6724](https://redirect.github.com/remix-run/remix/pull/6724)) deprecate the `--scheme` and `--host` options and replace them with the `REMIX_DEV_ORIGIN` environment variable - Output esbuild metafiles for bundle analysis ([#​6772](https://redirect.github.com/remix-run/remix/pull/6772)) Written to server build directory (`build/` by default): - `metafile.css.json` - `metafile.js.json` (browser JS) - `metafile.server.json` (server JS) Metafiles can be uploaded to <https://esbuild.github.io/analyze/> for analysis. - Add `serverNodeBuiltinsPolyfill` config option. In `remix.config.js` you can now disable polyfills of Node.js built-in modules for non-Node.js server platforms, or opt into a subset of polyfills. ([#​6814](https://redirect.github.com/remix-run/remix/pull/6814), [#​6859](https://redirect.github.com/remix-run/remix/pull/6859), [#​6877](https://redirect.github.com/remix-run/remix/pull/6877)) ```js // Disable all polyfills exports.serverNodeBuiltinsPolyfill = { modules: {} }; // Enable specific polyfills exports.serverNodeBuiltinsPolyfill = { modules: { crypto: true, // Provide a JSPM polyfill fs: "empty", // Provide an empty polyfill }, }; ``` ##### Patch Changes - ignore missing react-dom/client for react 17 ([#​6725](https://redirect.github.com/remix-run/remix/pull/6725)) - Warn if not using `v2_dev` ([#​6818](https://redirect.github.com/remix-run/remix/pull/6818)) Also, rename `--no-restart` to `--manual` to match intention and documentation. `--no-restart` remains an alias for `--manual` in v1 for backwards compatibility. - ignore errors when killing already dead processes ([#​6773](https://redirect.github.com/remix-run/remix/pull/6773)) - Always rewrite css-derived assets during builds ([#​6837](https://redirect.github.com/remix-run/remix/pull/6837)) - fix sourcemaps for `v2_dev` ([#​6762](https://redirect.github.com/remix-run/remix/pull/6762)) - Do not clear screen when dev server starts ([#​6719](https://redirect.github.com/remix-run/remix/pull/6719)) On some terminal emulators, "clearing" only scrolls the next line to the top. on others, it erases the scrollback. Instead, let users call `clear` themselves (`clear && remix dev`) if they want to clear. - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1181) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Ignore missing `react-dom/client` for React 17 ([#​6725](https://redirect.github.com/remix-run/remix/pull/6725)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1180) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - stabilize v2 dev server ([#​6615](https://redirect.github.com/remix-run/remix/pull/6615)) - improved logging for `remix build` and `remix dev` ([#​6596](https://redirect.github.com/remix-run/remix/pull/6596)) ##### Patch Changes - fix docs links for msw and mkcert ([#​6672](https://redirect.github.com/remix-run/remix/pull/6672)) - fix `remix dev -c`: kill all descendant processes of specified command when restarting ([#​6663](https://redirect.github.com/remix-run/remix/pull/6663)) - Add caching to regular stylesheet compilation ([#​6638](https://redirect.github.com/remix-run/remix/pull/6638)) - Rename `Architect (AWS Lambda)` -> `Architect` in the `create-remix` CLI to avoid confusion for other methods of deploying to AWS (i.e., SST) ([#​6484](https://redirect.github.com/remix-run/remix/pull/6484)) - Improve CSS bundle build performance by skipping unused Node polyfills ([#​6639](https://redirect.github.com/remix-run/remix/pull/6639)) - Improve performance of CSS bundle build by skipping compilation of Remix/React packages that are known not to contain CSS imports ([#​6654](https://redirect.github.com/remix-run/remix/pull/6654)) - Cache CSS side-effect imports transform when using HMR ([#​6622](https://redirect.github.com/remix-run/remix/pull/6622)) - Fix bug with pathless layout routes beneath nested path segments ([#​6649](https://redirect.github.com/remix-run/remix/pull/6649)) - Add caching to PostCSS for CSS Modules ([#​6604](https://redirect.github.com/remix-run/remix/pull/6604)) - Add caching to PostCSS for side-effect imports ([#​6554](https://redirect.github.com/remix-run/remix/pull/6554)) - cache getRouteModuleExports calls to significantly speed up build and HMR rebuild times ([#​6629](https://redirect.github.com/remix-run/remix/pull/6629)) - group rebuild logs with surrounding whitespace ([#​6607](https://redirect.github.com/remix-run/remix/pull/6607)) - instructions for integrating with msw ([#​6669](https://redirect.github.com/remix-run/remix/pull/6669)) - Update minimum version of `esbuild-plugins-node-modules-polyfill` to 1.0.16 to ensure that the plugin is cached ([#​6652](https://redirect.github.com/remix-run/remix/pull/6652)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1171) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Replace `esbuild-plugin-polyfill-node` with `esbuild-plugins-node-modules-polyfill` ([#​6562](https://redirect.github.com/remix-run/remix/pull/6562)) - Lazily generate CSS bundle when import of `@remix-run/css-bundle` is detected ([#​6535](https://redirect.github.com/remix-run/remix/pull/6535)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.17.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1170) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - built-in tls support ([#​6483](https://redirect.github.com/remix-run/remix/pull/6483)) New options: - `--tls-key` / `tlsKey`: TLS key - `--tls-cert` / `tlsCert`: TLS Certificate If both TLS options are set, `scheme` defaults to `https` ### [`v1.16.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1161) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Cross-module `loader` change detection for HDR ([#​6299](https://redirect.github.com/remix-run/remix/pull/6299)) - Normalize path for dev server `PATH` envvar so that it works cross-platform (e.g. Windows) ([#​6310](https://redirect.github.com/remix-run/remix/pull/6310)) - Fix CSS imports in JS files that use JSX ([#​6309](https://redirect.github.com/remix-run/remix/pull/6309)) - Kill app server when dev server exits ([#​6395](https://redirect.github.com/remix-run/remix/pull/6395)) - Wait until app server is killed before starting a new app server ([#​6289](https://redirect.github.com/remix-run/remix/pull/6289)) - Ensure CSS bundle changes result in a new manifest hash ([#​6374](https://redirect.github.com/remix-run/remix/pull/6374)) - Normalize file paths before testing if a changed file is a route entry ([#​6293](https://redirect.github.com/remix-run/remix/pull/6293)) - Fix race where app server responds with updated manifest version *before* dev server is listening for it ([#​6294](https://redirect.github.com/remix-run/remix/pull/6294)) - dev server now listens for updated versions *before* writing the server changes, guaranteeing that it is listening before the app server gets a chance to send its 'ready' message - Only process `.css.ts`/`.css.js` files with Vanilla Extract if `@vanilla-extract/css` is installed ([#​6345](https://redirect.github.com/remix-run/remix/pull/6345)) - Stop modifying a user's `tsconfig.json` when running using `getConfig` (`remix dev`, `remix routes`, `remix build`, etc) ([#​6156](https://redirect.github.com/remix-run/remix/pull/6156)) - Cancel previous build when rebuild is kicked off to prevent rebuilds from hanging ([#​6295](https://redirect.github.com/remix-run/remix/pull/6295)) - Update minimum version of Babel dependencies to avoid errors parsing decorators ([#​6390](https://redirect.github.com/remix-run/remix/pull/6390)) - Support asset imports when detecting loader changes for HDR ([#​6396](https://redirect.github.com/remix-run/remix/pull/6396)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.16.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-dev/CHANGELOG.md#1160) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - Enable support for [CSS Modules](https://redirect.github.com/css-modules/css-modules), [Vanilla Extract](http://vanilla-extract.style) and CSS side-effect imports ([#​6046](https://redirect.github.com/remix-run/remix/pull/6046)) These CSS bundling features were previously only available via `future.unstable_cssModules`, `future.unstable_vanillaExtract` and `future.unstable_cssSideEffectImports` options in `remix.config.js`, but they have now been stabilized. In order to use these features, check out our guide to [CSS bundling](https://remix.run/docs/en/1.16.0/guides/styling#css-bundling) in your project. - Stabilize built-in PostCSS support via the new `postcss` option in `remix.config.js`. As a result, the `future.unstable_postcss` option has also been deprecated. ([#​5960](https://redirect.github.com/remix-run/remix/pull/5960)) The `postcss` option is `false` by default, but when set to `true` will enable processing of all CSS files using PostCSS if `postcss.config.js` is present. If you followed the original PostCSS setup guide for Remix, you may have a folder structure that looks like this, separating your source files from its processed output: . ├── app │ └── styles (processed files) │ ├── app.css │ └── routes │ └── index.css └── styles (source files) ├── app.css └── routes └── index.css After you've enabled the new `postcss` option, you can delete the processed files from `app/styles` folder and move your source files from `styles` to `app/styles`: . ├── app │ └── styles (source files) │ ├── app.css │ └── routes │ └── index.css You should then remove `app/styles` from your `.gitignore` file since it now contains source files rather than processed output. You can then update your `package.json` scripts to remove any usage of `postcss` since Remix handles this automatically. For example, if you had followed the original setup guide: ```diff { "scripts": { - "dev:css": "postcss styles --base styles --dir app/styles -w", - "build:css": "postcss styles --base styles --dir app/styles --env production", - "dev": "concurrently \"npm run dev:css\" \"remix dev\"" + "dev": "remix dev" } } ``` - Stabilize built-in Tailwind support via the new `tailwind` option in `remix.config.js`. As a result, the `future.unstable_tailwind` option has also been deprecated. ([#​5960](https://redirect.github.com/remix-run/remix/pull/5960)) The `tailwind` option is `false` by default, but when set to `true` will enable built-in support for Tailwind functions and directives in your CSS files if `tailwindcss` is installed. If you followed the original Tailwind setup guide for Remix and want to make use of this feature, you should first delete the generated `app/tailwind.css`. Then, if you have a `styles/tailwind.css` file, you should move it to `app/tailwind.css`. ```sh rm app/tailwind.css mv styles/tailwind.css app/tailwind.css ``` Otherwise, if you don't already have an `app/tailwind.css` file, you should create one with the following contents: ```css @​tailwind base; @​tailwind components; @​tailwind utilities; ``` You should then remove `/app/tailwind.css` from your `.gitignore` file since it now contains source code rather than processed output. You can then update your `package.json` scripts to remove any usage of `tailwindcss` since Remix handles this automatically. For example, if you had followed the original setup guide: ```diff { // ... "scripts": { - "build": "run-s \"build:*\"", + "build": "remix build", - "build:css": "npm run generate:css -- --minify", - "build:remix": "remix build", - "dev": "run-p \"dev:*\"", + "dev": "remix dev", - "dev:css": "npm run generate:css -- --watch", - "dev:remix": "remix dev", - "generate:css": "npx tailwindcss -o ./app/tailwind.css", "start": "remix-serve build" } // ... } ``` - The Remix dev server spins up your app server as a managed subprocess. ([#​6133](https://redirect.github.com/remix-run/remix/pull/6133)) This keeps your development environment as close to production as possible. It also means that the Remix dev server is compatible with *any* app server. By default, the dev server will use the Remix App Server, but you opt to use your own app server by specifying the command to run it via the `-c`/`--command` flag: ```sh remix dev # uses `remix-serve <serve build path>` as the app server remix dev -c "node ./server.js" # uses your custom app server at `./server.js` ``` The dev server will: - force `NODE_ENV=development` and warn you if it was previously set to something else - rebuild your app whenever your Remix app code changes - restart your app server whenever rebuilds succeed - handle live reload and HMR + Hot Data Revalidation ##### App server coordination In order to manage your app server, the dev server needs to be told what server build is currently being used by your app server. This works by having the app server send a "I'm ready!" message with the Remix server build hash as the payload. This is handled automatically in Remix App Server and is set up for you via calls to `broadcastDevReady` or `logDevReady` in the official Remix templates. If you are not using Remix App Server and your server doesn't call `broadcastDevReady`, you'll need to call it in your app server *after* it is up and running. For example, in an Express server: ```js // server.js // <other imports> import { broadcastDevReady } from "@​remix-run/node"; // Path to Remix's server build directory ('build/' by default) const BUILD_DIR = path.join(process.cwd(), "build"); // <code setting up your express server> app.listen(3000, () => { const build = require(BUILD_DIR); console.log("Ready: http://localhost:" + port); // in development, call `broadcastDevReady` _after_ your server is up and running if (process.env.NODE_ENV === "development") { broadcastDevReady(build); } }); ``` ##### Options Options priority order is: 1. flags, 2. config, 3. defaults. | Option | flag | config | default | | -------------- | ------------------ | ---------------- | --------------------------------- | | Command | `-c` / `--command` | `command` | `remix-serve <server build path>` | | HTTP(S) scheme | `--http-scheme` | `httpScheme` | `http` | | HTTP(S) host | `--http-host` | `httpHost` | `localhost` | | HTTP(S) port | `--http-port` | `httpPort` | Dynamically chosen open port | | Websocket port | `--websocket-port` | `websocketPort` | Dynamically chosen open port | | No restart | `--no-restart` | `restart: false` | `restart: true` | 🚨 The `--http-*` flags are only used for internal dev server <-> app server communication. Your app will run on your app server's normal URL. To set `unstable_dev` configuration, replace `unstable_dev: true` with `unstable_dev: { <options> }`. For example, to set the HTTP(S) port statically: ```js // remix.config.js module.exports = { future: { unstable_dev: { httpPort: 8001, }, }, }; ``` ##### SSL and custom hosts You should only need to use the `--http-*` flags and `--websocket-port` flag if you need fine-grain control of what scheme/host/port for the dev server. If you are setting up SSL or Docker networking, these are the flags you'll want to use. 🚨 Remix **will not** set up SSL and custom host for you. The `--http-scheme` and `--http-host` flag are for you to tell Remix how you've set things up. It is your task to set up SSL certificates and host files if you want those features. ##### `--no-restart` and `require` cache purging If you want to manage server changes yourself, you can use the `--no-restart` flag to tell the dev server to refrain from restarting your app server when builds succeed: ```sh remix dev -c "node ./server.js" --no-restart ``` For example, you could purge the `require` cache of your app server to keep it running while picking up server changes. If you do so, you should watch the server build path (`build/` by default) for changes and only purge the `require` cache when changes are detected. 🚨 If you use `--no-restart`, it is your responsibility to call `broadcastDevReady` when your app server has picked up server changes. For example, with `chokidar`: ```js // server.dev.js const BUILD_PATH = path.resolve(__dirname, "build"); const watcher = chokidar.watch(BUILD_PATH); watcher.on("change", () => { // 1. purge require cache purgeRequireCache(); // 2. load updated server build const build = require(BUILD_PATH); // 3. tell dev server that this app server is now ready broadcastDevReady(build); }); ``` ##### Patch Changes - Fix absolute paths in CSS `url()` rules when using CSS Modules, Vanilla Extract and CSS side-effect imports ([#​5788](https://redirect.github.com/remix-run/remix/pull/5788)) - look for [@​remix-run/serve](https://redirect.github.com/remix-run/serve) in `devDependencies` when running remix dev ([#​6228](https://redirect.github.com/remix-run/remix/pull/6228)) - add warning for v2 "cjs"->"esm" `serverModuleFormat` default change ([#​6154](https://redirect.github.com/remix-run/remix/pull/6154)) - write mjs server output files ([#​6225](https://redirect.github.com/remix-run/remix/pull/6225)) - fix(react,dev): dev chunking and refresh race condition ([#​6201](https://redirect.github.com/remix-run/remix/pull/6201)) - Use correct require context in `bareImports` plugin. ([#​6181](https://redirect.github.com/remix-run/remix/pull/6181)) - use minimatch for regex instead of glob-to-regexp ([#​6017](https://redirect.github.com/remix-run/remix/pull/6017)) - add `logDevReady` as replacement for platforms that can't initialize async I/O outside of the request response lifecycle. ([#​6204](https://redirect.github.com/remix-run/remix/pull/6204)) - Use the "automatic" JSX runtime when processing MDX files. ([#​6098](https://redirect.github.com/remix-run/remix/pull/6098)) - forcibly kill app server during dev ([#​6197](https://redirect.github.com/remix-run/remix/pull/6197)) - show first compilation error instead of cancelation errors ([#​6202](https://redirect.github.com/remix-run/remix/pull/6202)) - Resolve imports from route modules across the graph back to the virtual module created by the v2 routes plugin. This fixes issues where we would duplicate portions of route modules that were imported. ([#​6098](https://redirect.github.com/remix-run/remix/pull/6098)) - Updated dependencies: - `@remix-run/[email protected]` </details> <details> <summary>remix-run/remix (@​remix-run/eslint-config)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1193) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.3) for an overview of all changes in v1.19.3. ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1192) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.2) for an overview of all changes in v1.19.2. ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1191) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.1) for an overview of all changes in v1.19.1. ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1190) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.0) for an overview of all changes in v1.19.0. ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1181) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.18.1) for an overview of all changes in v1.18.1. ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1180) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.18.0) for an overview of all changes in v1.18.0. ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1171) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.17.1) for an overview of all changes in v1.17.1. ### [`v1.17.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1170) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Add `HeadersArgs` type to be consistent with loaders/actions/meta and allows for using a `function` declaration in addition to an arrow function expression ([#​6247](https://redirect.github.com/remix-run/remix/pull/6247)) ```tsx 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", }; } ``` ### [`v1.16.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1161) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Don't require display name in root module ([#​5450](https://redirect.github.com/remix-run/remix/pull/5450)) - Update minimum version of Babel dependencies to avoid errors parsing decorators ([#​6390](https://redirect.github.com/remix-run/remix/pull/6390)) ### [`v1.16.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-eslint-config/CHANGELOG.md#1160) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - add deprecation warning to `@remix-run/eslint-config/jest` ESLint config ([#​5697](https://redirect.github.com/remix-run/remix/pull/5697)) </details> <details> <summary>remix-run/remix (@​remix-run/netlify)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.17.0`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.16.1`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ### [`v1.16.0`](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) </details> <details> <summary>remix-run/remix (@​remix-run/node)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1193) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1192) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Update to latest `@remix-run/web-*` packages ([#​7026](https://redirect.github.com/remix-run/remix/pull/7026)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1191) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1190) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Upgrade to [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/web-std-io/releases/tag/%40remix-run%2Fweb-fetch%404.3.5). Submitted empty file inputs are now correctly parsed out as empty `File` instances instead of being surfaced as an empty string via `request.formData()` ([#​6816](https://redirect.github.com/remix-run/remix/pull/6816)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1181) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1180) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1171) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.17.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1170) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Add `HeadersArgs` type to be consistent with loaders/actions/meta and allows for using a `function` declaration in addition to an arrow function expression ([#​6247](https://redirect.github.com/remix-run/remix/pull/6247)) ```tsx 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", }; } ``` - Fix `request.clone() instanceof Request` returning false. ([#​6512](https://redirect.github.com/remix-run/remix/pull/6512)) - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.16.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1161) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` ### [`v1.16.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-node/CHANGELOG.md#1160) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - add `@remix-run/node/install` side-effect to allow `node --require @​remix-run/node/install` ([#​6132](https://redirect.github.com/remix-run/remix/pull/6132)) - add `logDevReady` as replacement for platforms that can't initialize async I/O outside of the request response lifecycle. ([#​6204](https://redirect.github.com/remix-run/remix/pull/6204)) - add missing files to published package ([#​6179](https://redirect.github.com/remix-run/remix/pull/6179)) - Updated dependencies: - `@remix-run/[email protected]` </details> <details> <summary>remix-run/remix (@​remix-run/react)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1193) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.3) for an overview of all changes in v1.19.3. ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1192) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.2) for an overview of all changes in v1.19.2. ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1191) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) No significant changes to this package were made in this release. [See the releases page on GitHub](https://redirect.github.com/remix-run/remix/releases/tag/remix%401.19.1) for an overview of all changes in v1.19.1. ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1190) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - improved networking options for `v2_dev` ([#​6724](https://redirect.github.com/remix-run/remix/pull/6724)) deprecate the `--scheme` and `--host` options and replace them with the `REMIX_DEV_ORIGIN` environment variable - Added some missing react-router exports to `@remix-run/react` ([#​6856](https://redirect.github.com/remix-run/remix/pull/6856)) ##### Patch Changes - Narrowed the type of `fetcher.formEncType` to use `FormEncType` from `react-router-dom` instead of `string` ([#​6810](https://redirect.github.com/remix-run/remix/pull/6810)) - Deferred promises that return undefined/void now surface a serialization error. ([#​6793](https://redirect.github.com/remix-run/remix/pull/6793)) - Properly handle `?_data` HTTP/Network errors that don't reach the Remix server and ensure they bubble to the `ErrorBoundary` ([#​6783](https://redirect.github.com/remix-run/remix/pull/6783)) - Support proper hydration of `Error` subclasses such as `ReferenceError`/`TypeError` in development mode ([#​6675](https://redirect.github.com/remix-run/remix/pull/6675)) - fix router race condition for hmr ([#​6767](https://redirect.github.com/remix-run/remix/pull/6767)) - Avoid re-prefetching stylesheets for active routes during a revalidation ([#​6679](https://redirect.github.com/remix-run/remix/pull/6679)) - Add generic type for `useRouteLoaderData()` ([#​5157](https://redirect.github.com/remix-run/remix/pull/5157)) - Bump RR 6.14.2 ([#​6854](https://redirect.github.com/remix-run/remix/pull/6854)) - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.14.2) - [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#172) ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1181) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Fix reload loops in scenarios where CDNs ignore search params ([#​6707](https://redirect.github.com/remix-run/remix/pull/6707)) - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.14.1) - [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#171) ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1180) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - stabilize v2 dev server ([#​6615](https://redirect.github.com/remix-run/remix/pull/6615)) - Support `application/json` and `text/plain` submission encodings in `useSubmit`/`fetcher.submit` ([#​6570](https://redirect.github.com/remix-run/remix/pull/6570)) - Add support for `<Link prefetch="viewport">` to prefetch links when they enter the viewport via an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver) ([#​6433](https://redirect.github.com/remix-run/remix/pull/6433)) ##### Patch Changes - Bump router 6.14.0-pre.1 ([#​6662](https://redirect.github.com/remix-run/remix/pull/6662)) - Detect mismatches between the initially loaded URL and the URL at the time we hydrate and trigger a hard reload if they do not match. This is an edge-case that can happen when the network is slowish and the user clicks forward into a Remix app and then clicks forward again while the initial JS chunks are loading. ([#​6409](https://redirect.github.com/remix-run/remix/pull/6409)) - Lock in react router 6.14.0 ([#​6677](https://redirect.github.com/remix-run/remix/pull/6677)) - properly pass <Scripts /> props to inline script tags for deferred data ([#​6389](https://redirect.github.com/remix-run/remix/pull/6389)) ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1171) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.13.0) ### [`v1.17.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1170) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - Faster server export removal for routes when `unstable_dev` is enabled. ([#​6455](https://redirect.github.com/remix-run/remix/pull/6455)) Also, only render modulepreloads on SSR. Do not render modulepreloads when hydrated. - Force Typescript to simplify type produced by `Serialize`. ([#​6449](https://redirect.github.com/remix-run/remix/pull/6449)) As a result, the following types and functions have simplified return types: - SerializeFrom - useLoaderData - useActionData - useFetcher ```ts type Data = { hello: string; when: Date }; // BEFORE type Unsimplified = SerializeFrom<Data>; // ^? SerializeObject<UndefinedToOptional<{ hello: string; when: Date }>> // AFTER type Simplified = SerializeFrom<Data>; // ^? { hello: string; when: string } ``` - Reuse dev server port for WebSocket (Live Reload,HMR,HDR) ([#​6476](https://redirect.github.com/remix-run/remix/pull/6476)) As a result the `webSocketPort`/`--websocket-port` option has been obsoleted. Additionally, scheme/host/port options for the dev server have been renamed. Available options are: | Option | flag | config | default | | ---------- | ------------------ | ---------------- | --------------------------------- | | Command | `-c` / `--command` | `command` | `remix-serve <server build path>` | | Scheme | `--scheme` | `scheme` | `http` | | Host | `--host` | `host` | `localhost` | | Port | `--port` | `port` | Dynamically chosen open port | | No restart | `--no-restart` | `restart: false` | `restart: true` | Note that scheme/host/port options are for the *dev server*, not your app server. You probably don't need to use scheme/host/port option if you aren't configuring networking (e.g. for Docker or SSL). ##### Patch Changes - retry HDR revalidations in development mode to aid in 3rd party server race conditions ([#​6287](https://redirect.github.com/remix-run/remix/pull/6287)) - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.12.0) - [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#163) ### [`v1.16.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1161) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Cross-module `loader` change detection for HDR ([#​6299](https://redirect.github.com/remix-run/remix/pull/6299)) - Better opt-out of `loader` revalidation on UI only changes ([#​6278](https://redirect.github.com/remix-run/remix/pull/6278)) - Add `useMatch` re-export from `react-router-dom` ([#​5257](https://redirect.github.com/remix-run/remix/pull/5257)) - Fix `data` parameter typing on `V2_MetaFunction` to include `undefined` for scenarios in which the `loader` threw to it's own boundary. ([#​6231](https://redirect.github.com/remix-run/remix/pull/6231)) - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.11.2) - [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#162) ### [`v1.16.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-react/CHANGELOG.md#1160) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - Enable support for [CSS Modules](https://redirect.github.com/css-modules/css-modules), [Vanilla Extract](http://vanilla-extract.style) and CSS side-effect imports ([#​6046](https://redirect.github.com/remix-run/remix/pull/6046)) These CSS bundling features were previously only available via `future.unstable_cssModules`, `future.unstable_vanillaExtract` and `future.unstable_cssSideEffectImports` options in `remix.config.js`, but they have now been stabilized. In order to use these features, check out our guide to [CSS bundling](https://remix.run/docs/en/1.16.0/guides/styling#css-bundling) in your project. - Stabilize built-in PostCSS support via the new `postcss` option in `remix.config.js`. As a result, the `future.unstable_postcss` option has also been deprecated. ([#​5960](https://redirect.github.com/remix-run/remix/pull/5960)) The `postcss` option is `false` by default, but when set to `true` will enable processing of all CSS files using PostCSS if `postcss.config.js` is present. If you followed the original PostCSS setup guide for Remix, you may have a folder structure that looks like this, separating your source files from its processed output: . ├── app │ └── styles (processed files) │ ├── app.css │ └── routes │ └── index.css └── styles (source files) ├── app.css └── routes └── index.css After you've enabled the new `postcss` option, you can delete the processed files from `app/styles` folder and move your source files from `styles` to `app/styles`: . ├── app │ └── styles (source files) │ ├── app.css │ └── routes │ └── index.css You should then remove `app/styles` from your `.gitignore` file since it now contains source files rather than processed output. You can then update your `package.json` scripts to remove any usage of `postcss` since Remix handles this automatically. For example, if you had followed the original setup guide: ```diff { "scripts": { - "dev:css": "postcss styles --base styles --dir app/styles -w", - "build:css": "postcss styles --base styles --dir app/styles --env production", - "dev": "concurrently \"npm run dev:css\" \"remix dev\"" + "dev": "remix dev" } } ``` - Stabilize built-in Tailwind support via the new `tailwind` option in `remix.config.js`. As a result, the `future.unstable_tailwind` option has also been deprecated. ([#​5960](https://redirect.github.com/remix-run/remix/pull/5960)) The `tailwind` option is `false` by default, but when set to `true` will enable built-in support for Tailwind functions and directives in your CSS files if `tailwindcss` is installed. If you followed the original Tailwind setup guide for Remix and want to make use of this feature, you should first delete the generated `app/tailwind.css`. Then, if you have a `styles/tailwind.css` file, you should move it to `app/tailwind.css`. ```sh rm app/tailwind.css mv styles/tailwind.css app/tailwind.css ``` Otherwise, if you don't already have an `app/tailwind.css` file, you should create one with the following contents: ```css @​tailwind base; @​tailwind components; @​tailwind utilities; ``` You should then remove `/app/tailwind.css` from your `.gitignore` file since it now contains source code rather than processed output. You can then update your `package.json` scripts to remove any usage of `tailwindcss` since Remix handles this automatically. For example, if you had followed the original setup guide: ```diff { // ... "scripts": { - "build": "run-s \"build:*\"", + "build": "remix build", - "build:css": "npm run generate:css -- --minify", - "build:remix": "remix build", - "dev": "run-p \"dev:*\"", + "dev": "remix dev", - "dev:css": "npm run generate:css -- --watch", - "dev:remix": "remix dev", - "generate:css": "npx tailwindcss -o ./app/tailwind.css", "start": "remix-serve build" } // ... } ``` ##### Patch Changes - fix(react,dev): dev chunking and refresh race condition ([#​6201](https://redirect.github.com/remix-run/remix/pull/6201)) - Revalidate loaders only when a change to one is detected. ([#​6135](https://redirect.github.com/remix-run/remix/pull/6135)) - short circuit links and meta for routes that are not rendered due to errors ([#​6107](https://redirect.github.com/remix-run/remix/pull/6107)) - don't warn about runtime deprecation warnings in production ([#​4421](https://redirect.github.com/remix-run/remix/pull/4421)) - Update Remix for React Router no longer relying on `useSyncExternalStore` ([#​6121](https://redirect.github.com/remix-run/remix/pull/6121)) - Fix false-positive resource route identification if a route only exports a boundary ([#​6125](https://redirect.github.com/remix-run/remix/pull/6125)) - better type discrimination when unwrapping loader return types ([#​5516](https://redirect.github.com/remix-run/remix/pull/5516)) - Updated dependencies: - [`[email protected]`](https://redirect.github.com/remix-run/react-router/releases/tag/react-router%406.11.0) - [`@remix-run/[email protected]`](https://redirect.github.com/remix-run/react-router/blob/main/packages/router/CHANGELOG.md#160) </details> <details> <summary>remix-run/remix (@​remix-run/serve)</summary> ### [`v1.19.3`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1193) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.19.2`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1192) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Install `source-map-support` ([#​7039](https://redirect.github.com/remix-run/remix/pull/7039)) - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.19.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1191) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.19.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1190) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.18.1`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1181) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Patch Changes - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.18.0`](https://redirect.github.com/remix-run/remix/blob/HEAD/packages/remix-serve/CHANGELOG.md#1180) [Compare Source](https://redirect.github.com/remix-run/remix/compare/@remix-run/[email protected]...@remix-run/[email protected]) ##### Minor Changes - stabilize v2 dev server ([#​6615](https://redirect.github.com/remix-run/remix/pull/6615)) ##### Patch Changes - fix(types): better tuple serialization types ([#​6616](https://redirect.github.com/remix-run/remix/pull/6616)) - Updated dependencies: - `@remix-run/[email protected]` - `@remix-run/[email protected]` ### [`v1.17.1`](https://redirect.github.com/remix-run/remix/ </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/creatorsgarten/contentsgarten). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Loading branch information