FLYNNLABAboutMeCodingActivityStudy 2024초등수학
macOS node canvas 설치 이슈 수정
2023-11-20
osx, node, canvas, m1

jest-environment-jsdom 에서 npm canvas 모듈에 dependency가 있는데, 이게 m1에서는 설치가 안되는 이슈가 있었다.

검색해보니 아래와 같은 방법으로 해결이 가능하다.

필요한 모듈을 설치한다.

brew install pkg-config cairo pango libpng jpeg giflib librsvg

그런데, 위와 같이 필요한 모듈을 설치해도 되지 않아서 삽질을 했는데 알고 보니 canvas 모듈이 이미 설치되어 있어서 그런 것이었다.

canvas 모듈을 지우고 재설치를 하니 node-gyp이 수행되면서 정상적으로 설치가 되었다.

npm remove canvas
npm install canvas

추가 내용

  • 정확한 원인을 찾았다.
    내가 기본 설정을 --ignore-scripts=true 을 하고 있었다.
    위 옵션은 모듈의 npm install 이후 네이티브 코드를 빌드를 하지 않는 옵션이다. node-canvas는 위 기능이 꼭 필요 했었다.
  • python 3.10 부터는 distutils 라는 모듈이 제거되었다.
    node-canvas는 이 모듈을 사용하고 있어서 python 3.9로 다운그레이드를 해야 한다.
    brew install python@3.9