Node.js Native Addons and Electron 5.0
Electron 5.0에서 네이티브 Node.js 애드온을 사용하는 데 문제가 있다면, 최신 버전의 V8과 호환되도록 업데이트가 필요할 수 있다.
v8::Handle
작별, v8::Local
환영
2014년, V8 팀은 로컬 핸들에 대해 v8::Handle
대신 v8::Local
을 사용하도록 변경했다. Electron 5.0에는 v8::Handle
이 완전히 제거된 V8 버전이 포함되어 있으며, 여전히 v8::Handle
을 사용하는 네이티브 Node.js 애드온은 Electron 5.0에서 사용하기 전에 업데이트해야 한다.
필요한 코드 변경은 최소한이지만, 여전히 v8::Handle
을 사용하는 모든 네이티브 Node 모듈은 Electron 5.0에서 빌드에 실패하며 수정이 필요하다. 다행히 Node.js v12도 이 V8 변경 사항을 포함할 예정이므로, v8::Handle
을 사용하는 모듈은 Node의 새 버전과 호환되려면 어쨌든 업데이트해야 한다.
네이티브 애드온을 유지보수한다면 어떻게 도울 수 있을까?
Node.js용 네이티브 애드온을 유지보수하고 있다면, v8::Handle
을 모두 v8::Local
로 교체해야 한다. v8::Handle
은 단순히 v8::Local
의 별칭이었기 때문에, 이 특정 문제를 해결하기 위해 다른 변경 사항은 필요하지 않다.
또한 N-API를 살펴보는 것도 도움이 될 수 있다. N-API는 V8과 별도로 유지보수되며, Node.js 자체의 일부로 제공된다. 이 API는 네이티브 애드온이 기본 JavaScript 엔진의 변경 사항으로부터 격리될 수 있도록 설계되었다. 더 자세한 정보는 Node.js 웹사이트의 N-API 문서에서 확인할 수 있다.
도움! 내 앱에서 네이티브 애드온을 사용하는데 작동하지 않아요!
앱에서 Node.js용 네이티브 애드온을 사용 중이고, 이 문제로 인해 네이티브 애드온이 빌드되지 않는다면, 애드온 제작자에게 문의해 문제를 해결한 새 버전이 출시되었는지 확인해 보세요. 아직 해결된 버전이 없다면, 제작자에게 직접 문의하거나 Pull Request를 열어 수정을 제안하는 것이 가장 좋은 방법입니다.