Nodejs找不到模块'../build/Release/canvas'

fri*_*ion 19 node.js node-canvas

我安装了cairo和node-canvas.我尝试了一切,但仍然找不到模块.

sudo apt-get install libcairo2-dev
sudo npm install canvas
sudo npm install canvas -g
Run Code Online (Sandbox Code Playgroud)

如果我跑require('canvas'),我得到这个错误:

Error: Cannot find module '../build/Release/canvas'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous> (/home/tomas/node_modules/canvas/lib/bindings.js:2:18)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:32)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)
Run Code Online (Sandbox Code Playgroud)

我用Ubuntu linux

提前致谢.

dav*_*sto 10

在我的例子中,似乎也没有调用过install脚本。canvas我没有删除锁定文件,而是手动调用脚本,这解决了我的情况(至少暂时)的问题。

因此,如果canvas已经安装了该软件包,请转到/node_modules/canvas/并运行npm run install以创建构建目录。


Mar*_*ram 8

我有同样的问题。问题是install脚本node-canvas从未被执行,这就是build文件夹丢失的原因。

就我而言,删除该yarn.lock文件是解决方案,因为它node-canvas由于某种原因跳过了软件包安装。一旦我npm处理好这些软件包,它就成功安装了node-canvas,运行了install脚本,构建文件夹再次出现。


aks*_*hir 5

就我而言,我必须花很多时间来解决这个问题。

我只是使用“npm uninstall canvas”然后使用“npm i canvas”安装

如果上述选项不适合您,请尝试此操作。

  • 我很怀疑这是否有效,但我想我必须尝试一下。——解决了我的问题!谢谢! (3认同)

ran*_*ess 2

这里的问题看起来像 1. 你的节点模块安装在不同的位置,但是 node.js 运行时正在不同的位置搜索它。检查 NODE_PATH 并查看是否是这种情况。

请参阅http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders中解释的模块加载