23

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

sudo apt-get install libcairo2-dev
sudo npm install canvas
sudo npm install canvas -g

如果我运行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)

我使用 Ubuntu linux

提前致谢。

4

6 回答 6

14

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

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

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

于 2020-07-30T14:55:46.667 回答
4

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

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

于 2017-02-14T13:16:00.320 回答
2

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

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

于 2014-03-06T11:14:39.220 回答
1

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

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

于 2021-11-04T11:40:49.643 回答
0

我遇到了类似的问题,但我使用了 canvas-prebuilt ,它是 canvas 的替代品,我修复了它: npm install -g node-gyp然后node-gyp rebuild在终端

于 2020-02-26T00:08:45.413 回答
-1
sudo apt-get install libpixman-1-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev libgif-dev  libjpeg-dev

如果使用 ubuntu,尝试安装上面的 lib 然后安装 canvas。对我来说很好。</p>

如果你使用 cnpm 安装画布。试试 npm。

于 2017-02-14T03:34:41.477 回答