安装环境:Mac OSX Mavericks
要使用Node.js的canvas库,直接通过npm命令安装,通常,会得到一个编译错误:
$ npm install canvas ... > node-gyp rebuild ... No package 'cairo' found ... npm ERR! not ok code 0原因是依赖包cairo没有找到。
而cairo可以通过homebrew安装,但是,安装时又会有一个依赖错误:
$ brew install cairo cairo: Unsatisfied dependency: XQuartz Homebrew does not package XQuartz. Installers may be found at: https://xquartz.macosforge.org Error: An unsatisfied requirement failed this build.根据错误提示,原因是没有安装XQuartz。由于Apple从OSX 10.5开始移除了X11的支持,为了继续运行X11程序,Apple搞了一个开源项目XQuartz来继续提供X11的支持。从官方网站https://xquartz.macosforge.org下载,安装即可。
装完XQuartz,再次运行:
$ brew install cairo顺利安装成功!
再次尝试安装canvas,可能又会遇到以下错误:
$ npm install canvas ... Package xcb-shm was not found in the pkg-config search path. Perhaps you should add the directory containing `xcb-shm.pc' to the PKG_CONFIG_PATH environment variable Package 'xcb-shm', required by 'cairo', not found ...原因是环境变量PKG_CONFIG_PATH没有正确设置。把它设置成如下:
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig再次安装npm install canvas,成功!在Node.js中测试,成功:
$ node > var Canvas = require('canvas'); undefined由于Canvas依赖较多,故记录以便以后查阅。