Как установить node js canvas на окна
Я пытаюсь получить рабочий холст на node js. Я использую Windows Vista. После того, как базовый подход npm install canvas
завершился неудачно (см. Ниже), я просмотрел несколько руководств, вот что я пробовал:
источники:
installing-node-canvas-for-windows
LearnBoost/node-canvas/wiki/Installation---Windows
войти в консоль (после запуска 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.