NPM 模块画布是使用 NODE_MODULE_VERSION 88 针对不同的 Node.js 版本编译的

Posted

技术标签:

【中文标题】NPM 模块画布是使用 NODE_MODULE_VERSION 88 针对不同的 Node.js 版本编译的【英文标题】:NPM module canvas was compiled against a different Node.js version using NODE_MODULE_VERSION 88 【发布时间】:2021-04-18 15:21:21 【问题描述】:

我正在尝试使用 canvas 的 NPM 版本以及 merge images 的 NPM 模块。但是它的 Canvas 似乎不想加载。每次我需要它并运行脚本时都会出错。

This 的答案似乎没有帮助,因为我尝试了所有解决方案,但它似乎在谈论 bcrypt 和电子。

我正在使用 npm 版本 6.14.10 运行节点 v12.16.3,而我的 package.json 中的画布版本是 ^2.6.1

我的完整错误信息:

Error: The module '\\?\C:\...\node_modules\canvas\build\Release\canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 88. This version of Node.js requires
NODE_MODULE_VERSION 72. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1183:18)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\...\node_modules\canvas\lib\bindings.js:3:18)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Module.require (internal/modules/cjs/loader.js:1019:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\...\node_modules\canvas\lib\canvas.js:9:18)
    at Module._compile (internal/modules/cjs/loader.js:1133:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
    at Module.load (internal/modules/cjs/loader.js:977:32)

【问题讨论】:

你试过npm rebuildnpm install吗? 你试过在你的系统上编译它吗? -> npmjs.com/package/canvas#compiling 我尝试删除我的package-lock.jsonnode-modules,然后运行npm install 但什么也没有,npm rebuild 似乎失败了? 这能回答你的问题吗? Node - was compiled against a different Node.js version using NODE_MODULE_VERSION 72 【参考方案1】:

在寻找相同的错误并重新安装/删除我的 node_modules 文件夹时遇到了这个问题。但是,使用 npm rebuild canvas --update-binary 对我有用。

我在 this question 的类似错误的不同答案中找到了此解决方案,只是将其更改为适合画布。留下这个以防其他人也遇到这个。

【讨论】:

当您遇到一个您知道已在 SO 上发布的问题时,将其标记为重复,而不是重复答案和链接

以上是关于NPM 模块画布是使用 NODE_MODULE_VERSION 88 针对不同的 Node.js 版本编译的的主要内容,如果未能解决你的问题,请参考以下文章

在 elasticbeanstalk 上安装 npm canvas - npm 安装错误

#18 turtle模块

如何使用 PYTHON 的“tkinter”模块在画布上显示图像,特别适用于 linux?

npm创建和发布模块

npm创建和发布模块

限制 npm 依赖模块对 require(隔离)的使用