TL;DR

  • Remix 3.0.0이 첫 안정 버전으로 출시됐으며, 기존 remix/ui 사용 대부분을 remix/component로 옮기는 주요 변경이 포함됨.
  • 컴포넌트 런타임, JSX 런타임, 서버 렌더링, 테스트 헬퍼, 스타일, 범용 믹스인과 관련된 진입점 및 하위 경로 이름이 변경됨.
  • UI 기본 요소와 애니메이션 유틸리티는 remix 패키지에서 제외되고, 별도 설치하는 불안정한 @remix-run/ui 패키지로 이동함.
  • 컴포넌트 HMR 진입점과 에셋 로더 이름도 변경되며, JSX 설정과 에셋 서버의 허용 패키지 목록을 사용하는 앱은 설정을 갱신해야 함.
  • 설치 예제가 안정 버전을 사용하며 여러 @remix-run/* 의존성이 1.0.0으로 상향됨.

주요 변경 사항

  • 호환성이 깨지는 변경: 기존 remix/ui 사용 대부분을 remix/component로 이전함. 컴포넌트 런타임, JSX 런타임, 서버 렌더링, 테스트 헬퍼, 스타일 및 범용 믹스인을 새 진입점에서 사용할 수 있음.
  • remix/ui/server, remix/ui/test, remix/ui/dev/refresh 같은 런타임 하위 경로에도 같은 이름 변경을 적용함.
  • Remix JSX 런타임을 사용하는 앱은 컴파일러 설정의 jsxImportSource 값을 remix/ui에서 remix/component로 변경해야 함.
  • 컴포넌트 핫 모듈 교체(HMR) 진입점은 remix/ui-hmr에서 remix/component-hmr로 이동함. 에셋 로더도 uiHmr()에서 componentHmr()로 바꿔야 함.
  • 개발 서버에서 컴포넌트 HMR Node 훅을 사용하는 경우 진입점을 remix/ui-hmr/node에서 remix/component-hmr/node로 변경해야 함.
  • remix 패키지는 UI 컴포넌트, 기본 요소 및 애니메이션 유틸리티를 더 이상 내보내지 않음.
  • 헤드리스 접근성 UI 기본 요소와 애니메이션 유틸리티는 별도 패키지인 @remix-run/ui에 남아 있음. 이 패키지는 현재 불안정하며 v0.x 범위에서 독립적으로 버전이 관리되고, Remix 3.0 릴리스 후보에는 포함되지 않음.
  • 해당 API를 사용하는 앱은 npm i @remix-run/ui로 패키지를 별도 설치해야 함.
  • 애니메이션 가져오기는 remix/ui/animation에서 @remix-run/ui/animation으로 변경함.
  • 헤드리스 UI 기본 요소는 remix/ui/accordion/primitives 같은 경로에서 @remix-run/ui/accordion 같은 평면 하위 경로로 옮김. 대상 기본 요소는 accordion, anchor, combobox, listbox, menu, popover, select, tabs, toggle임.
  • 이전의 breadcrumbs, button, checkbox, input, radio 모듈을 비롯해 시각적 스타일이 적용된 컴포넌트와 스타일 믹스인은 제거됨.
  • 에셋 서버에서 allowPackages로 가져오기를 제한한다면 기본 요소 및 애니메이션 가져오기를 위해 @remix-run/ui를 허용 목록에 추가해야 함. 기존 remix 항목도 유지함.

패치 변경 사항

  • 설치 안내와 새 앱 예제가 안정 버전의 Remix를 사용함.
  • @remix-run/* 의존성이 다음 버전으로 상향됨.
  • assert@1.0.0, assets@1.0.0, async-context-middleware@1.0.0, auth@1.0.0, auth-middleware@1.0.0, cli@1.0.0, component@1.0.0, component-hmr@1.0.0, compression-middleware@1.0.0, cookie@1.0.0, cop-middleware@1.0.0, cors-middleware@1.0.0, csrf-middleware@1.0.0, data-schema@1.0.0, data-table@1.0.0, data-table-mysql@1.0.0, data-table-postgres@1.0.0, data-table-sqlite@1.0.0, fetch-proxy@1.0.0, fetch-router@1.0.0, file-storage@1.0.0, file-storage-s3@1.0.0, form-data-middleware@1.0.0, form-data-parser@1.0.0, fs@1.0.0, headers@1.0.0, html-template@1.0.0, lazy-file@5.0.8, logger-middleware@1.0.0, method-override-middleware@1.0.0, mime@1.0.0, multipart-parser@1.0.0, multiple-import-maps-polyfill@1.0.0, node-fetch-server@1.0.0, node-hmr@1.0.0, node-tsx@1.0.0, render-middleware@1.0.0, response@1.0.0, route-pattern@1.0.0, session@1.0.0, session-middleware@1.0.0, session-storage-memcache@1.0.0, session-storage-redis@1.0.0, spa@1.0.0, static-middleware@1.0.0, tar-parser@1.0.0, terminal@1.0.0, test@1.0.0.