과거 Trix와 Action Text의 긴밀한 결합은 몇 가지 문제점을 야기했습니다. Trix의 업데이트가 Rails의 새로운 릴리스에 의존해야 했으며, 이는 최신 Trix 기능이나 보안 패치의 도입을 지연시켰습니다. 또한, bin/importmap pin을 통한 npm 패키지 사용이나 vendor 폴더에 수동으로 파일을 관리하는 방식은 CSS 관리 문제 및 잘못된 취약점 보고와 같은 복잡성을 발생시켰습니다.
이러한 문제들을 인식한 Rails 커뮤니티는 Trix를 action_text-trix라는 별도의 Gem으로 추출하는 해결책을 제시했습니다. 이 Gem은 Trix 저장소 내에 위치하며, 주요 이점은 Action Text와 Trix를 독립적으로 업그레이드할 수 있다는 것입니다. 특히 보안 업데이트의 경우, Node 모듈과 동시에 Gem이 릴리스되어 중요한 수정 사항에 훨씬 빠르게 접근할 수 있게 되었습니다. 또한, Trix의 JavaScript 및 CSS 종속성을 자동으로 관리하여 개발자의 자산 관리 부담을 줄여줍니다.
설치 방법
새로운 Rails 애플리케이션
bin/rails action_text:install 명령어를 실행하면 action_text-trix Gem이 자동으로 추가되고 필요한 모든 JS 및 CSS 종속성이 관리됩니다. Importmap 또는 ESBuild를 사용하는 경우 수동 설정이 필요 없습니다.
기존 Rails 애플리케이션
- Gem 추가:
Gemfile에action_text-trixGem을 추가하고bundle install을 실행합니다.ruby gem "action_text-trix" - 기존 Trix 파일 삭제: 이전에
vendor/폴더에 복사했거나 npm/yarn을 통해 Trix를 임포트했다면 해당 파일들을 제거하여 Gem이 제공하는 버전을 사용하도록 합니다. - Importmap 설정 업데이트:
config/importmap.rb파일에pin "trix", to: "trix.js"와 같은 라인이 있다면 주석 처리하거나 제거하여 Gem이 제공하는 Trix 버전을 로드하도록 합니다.
호환성 및 유연성
action_text-trix Gem은 Rails 버전에 대한 특정 종속성을 명시하지 않아, Railties가 있는 한 모든 Rails 버전에서 사용할 수 있습니다. 이러한 변화는 Trix 통합을 간소화하고, 자산 관리를 용이하게 하며, 업그레이드 과정을 훨씬 덜 번거롭게 만듭니다. 또한, 필요한 경우 Trix를 TipTap 또는 Quill과 같은 다른 에디터로 교체하는 것도 더 쉬워졌습니다.