node.js - 如何解决canvas预建的Node.js版本不兼容问题?

标签 node.js canvas

我正在尝试在我的项目中使用canvas-prebuilt

这是package.json中的依赖项列表

  "dependencies": {
    "canvas-prebuilt": "^1.6.5-prerelease.1",
    "canvas-to-image-node": "^1.0.4",
    "wordcloud": "^1.0.6"
  },

但是我遇到了这个错误:

module.js:653
  return process.dlopen(module, path._makeLong(filename));
                 ^

Error: The module '/Users/antkong/test/node_modules/canvas-prebuilt/canvas/build/Release/canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 46. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (module.js:653:18)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Module.require (module.js:568:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/antkong/test/node_modules/canvas-prebuilt/canvas/lib/bindings.js:3:18)
    at Module._compile (module.js:624:30)
    at Module._extensions..js (module.js:635:10)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/antkong/test/node_modules/babel-register/lib/node.js:152:7)

所以我尝试了这个命令npm重建。我收到了这个错误:

> canvas-prebuilt@1.6.5-prerelease.1 install /Users/antkong/test/node_modules/canvas-prebuilt
> node-pre-gyp install

[canvas-prebuilt] Success: "/Users/antkong/test/node_modules/canvas-prebuilt/canvas/build/Release/canvas-prebuilt.node" is installed via remote

> canvas@1.6.7 install /Users/antkong/test/node_modules/canvas
> node-gyp rebuild

gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: 522 status code downloading checksum

如何解决这个问题?

我正在考虑的一个解决方案是将nodejs降级到NODE_MODULE_VERSION 57。但是我不知道哪个nodejs版本对应于NODE_MODULE_VERSION 57。我的 Node 版本目前是8.7.0

$ node --version
v8.7.0

最佳答案

我所做的是在部署中打包兼容的node.exe以使其独立。 并添加一个脚本以将当前文件夹插入到 PATH 环境变量的头部,以忽略目标环境中的 Node 。 我使用的是 Windows。

关于node.js - 如何解决canvas预建的Node.js版本不兼容问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301017/

相关文章:

javascript - HTML5 Canvas,沿着路径的等距点

javascript - Canvas context.fillText 可以变得清晰吗(因为 context.translate 0.5/0.5 不能)

javascript - 在 Fabric.js 中更改文本字体

javascript - 如何使用 React 从数据库中获取正确的数据

Node.js 中的 Javascript 使用具有不同签名的函数

JavaFX Canvas 未绘制图像

javascript - 编辑 JavaScript/HTML5 视频中的像素数据(处理为 JS 翻译)

arrays - 超测多个request.field数组在服务器上未定义

node.js - 没有密码字段的护照登录身份验证

javascript - `req.session.secret` 未在使用 Express-Session 的路由中定义