簡體   English   中英

在Windows 2016上配置具有JPEG支持的Node Canvas模塊時出錯

[英]Error while configuring Node Canvas module with jpeg support on Windows 2016

我正在嘗試在節點服務器上使用fabric.js構建應用程序。 我按照記錄的步驟進行操作,並且能夠設置畫布和織物模塊。

當我嘗試通過更新binding.gyp文件來包括對jpeg文件的支持時,node.canvas會中斷。

當前配置

v8: '5.1.281.83'
node@6.6.0
node-gyp@3.8.0
npm: '6.4.0-next.0'

畫布必備版本

GTK - gtk+-bundle_2.22.1-20101229_win64
jpeglib - libjpeg-turbo-2.0.0-vc64

安裝步驟

npm i canvas

canvas項目成功構建,沒有任何錯誤

我使用以下命令更新了“ node_modules / canvas”文件夾中的binding.gyp

'with_jpeg%': 'true', 
'libjpeg_root%': 'C:/libjpeg-turbo64',

更新了條件

['with_jpeg=="true"', {
  'defines': [
    'HAVE_JPEG'
  ],
  'conditions': [
    ['OS=="win"', {
     'copies': [{
        'destination': '<(PRODUCT_DIR)',
        'files': [
          '<(libjpeg_root)/bin/jpeg62.dll',
        ]
      }],
      'libraries': [
         '-l<(libjpeg_root)/lib/jpeg.lib'
      ],
      'include_dirs': [
        '<(libjpeg_root)/include'
      ]
    }, {
      'libraries': [
        '-ljpeg'
      ]
    }]
  ]
}]

更新綁定文件node-gyp后,重建工作正常,沒有任何問題,一旦運行測試就完成

測試畫布代碼

var Canvas = require('canvas');

在運行測試代碼時,出現以下錯誤

Error: The specified module could not be found.
\\?\C:\<AppPath>\node_modules\canvas\build\Release\canvas.node
    at Error (native)

如果我將with_jpeg變量設置為false並重建,則測試代碼可以正常工作而不會出現任何問題。 我不太確定我要去哪里。 有人可以幫我解決這個問題。

Windows上的JPEG支持需要節點畫布2.x ,而fabric.js當前使用1.6.x。 除了您進行的構建配置更改外,還需要其他源代碼更改(請參閱https://github.com/Automattic/node-canvas/pull/841/files#diff-b92a52ffb02b7fb42c340919b0f983d6 )。

您可以將其另存為PNG,直到fabric.js升級為止,如果您確實需要JPEG,可以使用其他工具將PNG轉換為JPEG。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM