Как установить node js canvas на окна

Я пытаюсь получить рабочий холст на node js. Я использую Windows Vista. После того, как базовый подход npm install canvas завершился неудачно (см. Ниже), я просмотрел несколько руководств, вот что я пробовал:

источники:
installing-node-canvas-for-windows
LearnBoost/node-canvas/wiki/Installation---Windows

  • Я установил старый Python (2.7.5) и добавлю его в PATH (и удаляю Python 3.2 из PATH)
  • Я проверил, что у меня установлен Microsoft Visual Studio 2010 Professional.
  • Я загрузил пакет "все в одном" GTK из http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip, разархивировал его в C:\GTK\и добавил 'C:\GTK\bin 'в PATH

войти в консоль (после запуска npm install canvas в cmd):
log содержит несколько предупреждений, я не думаю, что это проблема - это в основном что-то вроде "преобразование из double в float" и одна ошибка, отмеченная красным цветом:

init.cc
d:\pathToApp\node_modules\canvas\src\PNG.h(5): fatal error C1083: Cannot
open include file: 'cairo.h': No such file or directory [d:\pathToApp\n
ode_modules\canvas\build\canvas.vcxproj]

И в самом конце журнала есть:

gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\
npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:
12)
gyp ERR! System Windows_NT 6.0.6002
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu
les\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd d:\pathToApp\node_modules\canvas
gyp ERR! node -v v0.10.16
gyp ERR! node-gyp -v v0.10.9
gyp ERR! not ok
npm ERR! weird error 1
npm ERR! not ok code 0

После этого ничего не появилось в папке node -module (нет подкаталога canvas, npm после неудачной установки удалил подкаталог).

Итак, я также попытался загрузить модуль canvas вручную из github, разархивировать его в node -модулях, а затем запустить node-gyp configure в node -модулях/холсте с успехом и node-gyp build, что, к сожалению, дало мне та же ошибка Cannot open include file: 'cairo.h'.

Я прочитал все, что я нашел по этому поводу. Если вы можете предложить любую помощь, пожалуйста, сделайте это.

Ответы

Ответ 1

Мне удалось заставить его работать на моей новой машине Windows 8, поэтому я хочу поделиться некоторыми сведениями, которые могут быть полезны другим.

Я использую:

Процедура

Убедитесь, что в вашем пути есть Python 2 и GTK\bin.

Я загрузил файлы вручную из https://github.com/Automattic/node-canvas и сохранил его в node_modules/canvas.

Затем я запускаю node-gyp configure build в каталоге холста. Произошли ошибки. Мне нужно было отредактировать binding.gyp (https://github.com/Automattic/node-canvas/blob/master/binding.gyp), чтобы соответствовать фактическим файлам в папке GTK.

Например:

  • строка 59: "(GTK_Root)/lib/libpng.lib" → "(GTK_Root)/lib/libpng.dll.a"
  • строка 34: "(GTK_Root)/bin/libpng14-14.dll" → "(GTK_Root)/bin/libpng15-15.dll"
  • ...

Там может быть больше, вы должны иметь возможность читать, какие файлы создают проблемы из журнала ошибок, а затем редактировать имена для соответствия файлам в папке GTK.

После редактирования binding.gyp команда node-gyp configure build завершилась успешно. Хотя я не могу работать с некоторыми файлами jpg в Canvas (я не тестировал его правильно), файлы png работают нормально.

Если node -gyp терпит неудачу

С вами может случиться, что каждая команда node -gyp завершается с сообщением (возможно, отмеченным красным), похожее на:

"... bcrypt_lib.vcxproj(47,46): ошибка MSB4025: Не удалось загрузить файл-проект. Недопустимый символ для указанной кодировки., строка 47, позиция 46."

Это, скорее всего, потому, что у вас есть специальный символ в имени вашей папки пользователя. (Тот факт, что Windows 8 автоматически создает имя вашей пользовательской папки с вашего имени, - это самая легкая вещь о Win 8).

2 быстрых решения:

  • создайте другого пользователя с обычным (без специальных символов) именем a и запустите node-gyp configure build из этой учетной записи
  • используйте это быстрое исправление (он работал у меня): https://github.com/TooTallNate/node-gyp/pull/366

Надеюсь, что это поможет.

Ответ 2

Мне удалось получить эту работу над окнами после долгого трудного процесса. У меня есть несколько последних предложений, которые вы могли бы попробовать в моем списке.

Скопируйте все DLL файлы из c:\GTK в папку canvas\build\Release.

Скопируйте файл IEShims.dll из c:\program files (x86)\Internet Explorer в папку canvas\build\Release.

Затем запустите node -gyp build.

Желаем удачи.

Ответ 3

У меня возникли проблемы с холстом при попытке установить paperjs.

Вот что сработало для меня.

Моя специфика

GTK

Убедитесь, что вы прочитали README. Здесь есть необходимые инструкции, которые я забыл в первый раз. Например:

Запуск: pkg-config --cflags gtk+-2.0

Запустите: gtk-demo и убедитесь, что он работает

Запуск pkg-config сообщите мне, что мне нужно иметь <GTK Directory>\lib\pkgconfig в переменной среды PKG_CONFIG_PATH.

холст

Я использовал это как руководство: https://github.com/LearnBoost/node-canvas/wiki/Installation---Windows

ПРИМЕЧАНИЕ. У меня есть Visual Studio 2010, 2012 и 2013, установленные на моей машине, поэтому мне не приходилось иметь дело с зависимостями MSVC.

npm install canvas всегда терпел неудачу - и очистка после себя (рывок) - поэтому я схватил кешированную версию из npm-cache: %USERPROFILE%\AppData\Roaming\npm-cache\canvas\1.1.3\package. Скопируйте этот каталог в каталог проекта node_modules и переименуйте его canvas. Введите вновь созданный каталог canvas в командной строке.

Запустите npm install nan.

Прежде чем вы сможете успешно запустить node-gyp configure, вам нужно проверить свой путь GTK в binding.gyp

В строке 5:

'GTK_Root%': 'C:/GTK', # Установить расположение пакета GTK all-in-one

Теперь вы можете попробовать node-gyp configure. Если это будет успешным, удивительным! Теперь вы можете его построить: node-gyp build.

Это должно сделать это. Если вы пытались установить бумагу, теперь можете. Ура!

Если это не работает или у вас есть что добавить, не стесняйтесь! Пожалуйста, прокомментируйте, чтобы мы могли все выиграть.

Ответ 4

Вам понадобится библиотека cairo, которая входит в состав GTK

Ответ 5

Вот самая последняя информация, которую я нашел о том, как установить компоненты, необходимые для запуска node - gyp, который, в свою очередь, должен скомпилировать код для canvas (и jsdom). Я собираюсь воспроизвести его здесь, в случае, если ссылка замирает. Я тестировал эти инструкции на своей машине Win7 x64, и он работал в первый раз.


В Windows XP/Vista/7 node -gyp требует Python 2.7 и Visual Studio 2010

В соответствии с файлом readme в Обновление для компилятора Microsoft Visual С++ 2010 для Windows SDK 7.1, чтобы убедиться, что ваша система имеет поддерживаемой конфигурации, удалите следующие продукты и затем переустановите их в указанном порядке:

В средах x64 последнее обновление в списке исправляет ошибки в отношении отсутствующих компиляторов и error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.