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.js
和node_modules
在同一个目录下,canvas目录在node_modules里面
canvas 模块是最糟糕的,在我的生活中从来没有遇到过这么多的问题......一直在尝试这样做 3 天......到处都是。从 c:... 放置直接路径虽然有效..
对我来说,我做了npm clean-install
,它奏效了。
【参考方案1】:
在我的情况下,canvas
的 install
脚本似乎也没有被调用。我没有删除锁定文件,而是手动调用了脚本,这解决了我的问题(至少是暂时的)。
因此,如果 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-canvas
的install
脚本从未被执行,这就是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'的主要内容,如果未能解决你的问题,请参考以下文章