Skip to main content

Moving our Ecosystem to Node 22

· 4 min read

2025년 초, Electron의 npm 생태계 저장소(@electron/@electron-forge/ 네임스페이스 아래)는 최소 지원 버전을 Node.js 22로 변경한다.

과거에는 Electron의 npm 생태계(Forge, Packager 등) 내 패키지들이 가능한 한 오랫동안 Node 버전을 지원해왔다. 심지어 해당 버전이 End-Of-Life(EOL)에 도달한 후에도 말이다. 이는 생태계가 분열되는 것을 방지하기 위한 조치였다. 많은 프로젝트가 구버전의 Node에 의존하고 있음을 이해했기 때문에, 업그레이드가 꼭 필요한 상황이 아니라면 이러한 프로젝트를 방치하는 위험을 감수하고 싶지 않았다.

하지만 시간이 지나면서 Node.js 14를 최소 버전으로 사용하는 것이 점점 더 어려워졌다. 그 이유는 다음과 같다:

  • 공식적인 Node.js 14 macOS ARM64 빌드가 없어, 전체 테스트 커버리지를 제공하기 위해 CI 인프라를 유지하는 데 추가 작업이 필요하다.
  • 상위 패키지 의존성의 engines 요구사항이 점점 더 높아지면서, 의존성 업데이트를 통해 공급망 보안 문제를 해결하기가 더 어려워졌다.

또한, 최신 버전의 Node.js에는 fs.globutil.parseArgs 같은 런타임 내장 유틸리티와 node:test, node:sqlite 같은 새로운 모듈이 포함되어 있다. 이러한 개선 사항을 활용하고 싶은 이유도 있다.

왜 지금 업그레이드해야 할까?

2024년 7월, Electron의 Ecosystem Working Group은 모든 패키지를 동기식 ESM 그래프의 require()를 지원하는 가장 이른 Node 버전으로 업그레이드하기로 결정했다. 이 버전이 LTS(장기 지원) 날짜에 도달한 후에 적용될 예정이다. 관련 내용은 nodejs/node#51977nodejs/node#53500에서 확인할 수 있다.

이 업데이트 시점을 2025년 1월/2월로 정했다. 이 업그레이드가 완료되면, Node 22가 기존 생태계 패키지에서 지원되는 최소 버전이 된다.

어떤 조치를 취해야 하나?

가능한 한 많은 호환성을 유지하기 위해 노력할 것이다. 하지만 최상의 지원을 보장하기 위해 여러분의 앱을 Node 22 이상으로 업그레이드할 것을 권장한다.

프로젝트에서 실행 중인 Node 버전은 현재 사용 중인 Electron 버전에 내장된 Node 버전과는 별개라는 점을 유의하라.

궁금한 점이나 문의사항이 있다면 언제든지 info@electronjs.org로 메일을 보내주세요. 또한 공식 Electron Discord에서 커뮤니티 지원을 받을 수도 있습니다.