问题出现

已有网站项目,升级到node.js4.0,结果运行不起来,返回代码 exit code 139 。

摸索过程

通过搜索引擎,想查找139代表什么意思,未果。然后找升级注意事项的资料,发现了提到了C++模块使用着升级要小心,因此想到我的验证码使用了canvas。
通过屏蔽canvas的调用,确定了原因所在。

解决方法

知道了原因,其实就是要重新编译canvas库!
我服务器使用了docker部署,在linux下,canvas的安装在nodejs4.0下很正常。
在mac上安装却出现了问题,找不到cairo,仔细看了看我的安装记录(前面的 mac知识中有初装过程记录),发现可能是环境变量问题,运行

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig

然后再安装canvas,成功。

结论

升级到nodejs4.0,你所使用的C++库可能需要重新编译。


zhoutk
2.6k 声望1.2k 粉丝

自由程序员,技术路线c,delphi,c++,c#,java,php,node.js,python,golang,typescript;超喜欢react.js的设计思路,全栈开发成为我的终极目标。开发机器macbook pro,或装ubuntu、fedora的机器,编程用vim...