Nodejs无法找到模块“../build/Release/canvas”

ekqde3dh  于 2023-04-05  发布在  Node.js
关注(0)|答案(7)|浏览(1191)

我安装了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
先谢谢你了。

nfzehxib

nfzehxib1#

在我的情况下,我必须花很多时间来解决这个问题。

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

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

sg3maiej

sg3maiej2#

在我的例子中,似乎也没有调用canvasinstall脚本。我没有删除锁文件,而是手动调用脚本,解决了我的问题(至少暂时解决了)。
因此,如果已经安装了canvas包,请转到 /node_modules/canvas/ 并运行npm run install,这将创建构建目录。

w6lpcovy

w6lpcovy3#

我也遇到了同样的问题。问题是node-canvasinstall脚本从未执行过,这就是为什么build文件夹丢失的原因。
在我的例子中,删除yarn.lock文件是解决方案,因为它由于某种原因跳过了node-canvas包的安装。一旦我让npm处理这些包,它成功安装了node-canvas,运行install脚本,构建文件夹再次出现。

gopyfrb3

gopyfrb34#

这里的问题看起来像1。你的节点模块安装在不同的位置,但是node.js运行时在不同的位置搜索它。检查NODE_PATH,看看是否是这种情况。
请参阅www.example.com中解释的模块加载http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

stszievb

stszievb5#

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

o7jaxewo

o7jaxewo6#

你可以试试:

  • 删除NodeModule文件夹
  • 使用节点版本14
  • 运行依赖项安装
mm9b1k5b

mm9b1k5b7#

sudo apt-get install libpixman-1-dev libcairo2-dev libpangocairo-1.0-0 libpango1.0-dev libgif-dev  libjpeg-dev

如果使用ubuntu,尝试安装以上lib,然后安装canvas.work对我来说很好。
如果你使用cnpm安装canvas,试试npm。

相关问题