反应脚本 Fabricjs jsdom 冲突,

React-script Fabricjs jsdom conflict,

当我在我的项目中开始测试时,会发生以下错误:

失败源/测试/App.js ● 渲染不崩溃

TypeError: Cannot read property 'imageSmoothingEnabled' of null

  at klass._setImageSmoothing (node_modules/fabric/dist/fabric.js:6567:38)
  at klass._initStatic (node_modules/fabric/dist/fabric.js:6348:12)
  at klass.initialize (node_modules/fabric/dist/fabric.js:8611:12)
  at new klass (node_modules/fabric/dist/fabric.js:1961:23)

实际上它发生在我创建 fabricjs canvas 时。是不是jsdom和fabricjs冲突了???

终于找到问题所在了。问题是 fabric js 依赖项之一。这是 Canvas 。它需要 OS 上的一些软件包。取决于你的 OS.

OS X :brew 安装 pkg-config cairo libpng jpeg giflib

Ubuntu :sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++

Fedora :sudo yum 安装 cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel giflib-devel

Solaris :pkgin 安装 cairo pkg-config xproto renderproto kbproto xextproto

Windows :关于 canvas wiki

的说明

根据问题 3567 中的评论者,您需要安装 fabricjs 才能使其正常工作。我在升级到 node-canvas 2 alpha (npm install canvas@next).

后遇到了这个问题

要么将 node-canvas 降级为 1.x,要么简单地 运行 npm install fabricjs。这为我解决了。