React-script Fabricjs jsdom冲突,

时间:2017-05-26 10:46:29

标签: testing fabricjs jestjs jsdom react-scripts

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

FAIL src / 测试 /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画布时会发生这种情况。这是jsdom和fabricjs之间的冲突???

2 个答案:

答案 0 :(得分:2)

最后我发现了这个问题。问题是结构js依赖项之一。那是Canvas。它需要OS上的一些软件包。取决于您的操作系统。

OS X:brew install 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 install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel giflib-devel

Solaris:pkgin install cairo pkg-config xproto renderproto kbproto xextproto

Windows:关于画布的说明wiki

答案 1 :(得分:0)

根据问题3567中的评论者,您需要安装fabricjs才能使其正常工作。升级到节点画布2 alpha(npm install canvas@next)后,我遇到了问题。

您可以将节点画布降级为1.x,也可以直接运行npm install fabricjs。这为我解决了。