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

Posted

技术标签:

【中文标题】Nodejs找不到模块\'../build/Release/canvas\'【英文标题】:Nodejs Cannot find module '../build/Release/canvas'Nodejs找不到模块'../build/Release/canvas' 【发布时间】:2013-01-24 04:08:11 【问题描述】:

我安装了 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

提前致谢。

【问题讨论】:

检查模块是否在您的 node_module 目录中,如果是,请尝试要求完整路径,如require('./node_modules/canvas'); 你在那个目录下找到了模块?检查github.com/LearnBoost/node-canvas/issues/137 是的。 test.jsnode_modules在同一个目录下,canvas目录在node_modules里面 canvas 模块是最糟糕的,在我的生活中从来没有遇到过这么多的问题......一直在尝试这样做 3 天......到处都是。从 c:... 放置直接路径虽然有效.. 对我来说,我做了npm clean-install,它奏效了。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

就我而言,我必须花费大量时间来解决这个问题。

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

如果上面的选项不适合你,试试这个。

【讨论】:

我很怀疑这是否可行,但我认为我必须尝试一下。 -- 解决了我的问题!谢谢!【参考方案3】:

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

【讨论】:

【参考方案4】:
sudo apt-get install libpixman-1-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev libgif-dev  libjpeg-dev

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

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

我遇到了类似的问题,我禁用了安装脚本。重新启用它们解决了我的问题。【参考方案6】:

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

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

【讨论】:

以上是关于Nodejs找不到模块'../build/Release/canvas'的主要内容,如果未能解决你的问题,请参考以下文章

nodejs require模块找不到怎么解决?

Nodejs找不到模块

错误:找不到模块 AngularJS+NodeJs

NodeJS 错误:找不到模块 './lib/oauth'

在 Nodejs 中找不到模块

nodejs module.js:340 错误:找不到模块