Создание контекста под Windows 7 x64 (для jQuery для NodeJS)

Я пытаюсь получить node -jquery. contextify - одна из зависимостей (требуется для jsdom).

contextify нужно как-то создать Python. Но это не похоже на работу с Windows 7 x64. По крайней мере один мой компьютер:)

После некоторых чтений (# 10, # 12, # 17), и попробовав некоторые двоичные файлы, предоставленные этой вилкой, и этот один, я могу получить он работает...

У меня такая же ошибка от node-gyp configure или от node-gyp rebuild (npm install jquery):

info it worked if it ends with ok
info downloading: http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz
info downloading: http://nodejs.org/dist/v0.6.14/x64/node.lib
info downloading: http://nodejs.org/dist/v0.6.14/node.lib
spawn python [ 'D:\\Users\\ngryman\\.node-gyp\\0.6.14\\tools\\gyp_addon',
  'binding.gyp',
  '-ID:\\Users\\ngryman\\build\\config.gypi',
  '-f',
  'msvs',
  '-G',
  'msvs_version=2010' ]
  File "D:\Users\ngryman\.node-gyp\0.6.14\tools\gyp_addon", line 40
    print 'Error running GYP'
                        ^
SyntaxError: invalid syntax
ERR! Error: `gyp_addon` failed with exit code: 1
  at ChildProcess.onCpExit (D:\Users\ngryman\AppData\Roaming\npm\node_modules
node-gyp\lib\configure.js:226:16)
  at ChildProcess.emit (events.js:70:17)
  at maybeExit (child_process.js:360:16)
  at Process.onexit (child_process.js:396:5)
ERR! not ok

Кажется, есть синтаксическая ошибка... Мне не очень удобно с Python.

Вот мои версии:

  • Python: 3.2.3
  • NodeJS: 0.6.14

У кого-нибудь есть идея?

Спасибо!

Ответы

Ответ 1

Мне удалось создать его, но я могу сказать, что это было очень больно. На самом деле было так больно, что это вызвало временную амнезию, и я забыл, как я это сделал.

Вам нужна Visual Studio, кроме питона.

Во всяком случае, у меня есть двоичные файлы, я просто загрузил их в gihub:
https://github.com/mihaifm/jsdom_binaries

Просто клонируйте это репо, скопируйте то, что внутри node_modules, в ваш проект, и вам хорошо идти!

Обновление (март 2013 г.)

Эти двоичные файлы больше не нужны (по крайней мере, не для Win7 с установленным VS2010). jsdom и contextify теперь можно установить только с npm:

npm install jsdom
npm install contextify

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

Я также обновил репо, на всякий случай, когда у кого-то еще есть проблемы с установкой.

Ответ 2

Мне удалось успешно построить node -jquery в Windows 7 (x64) с помощью node 0.8.11 (x64) и Python 2.7.3. Вот как выглядит моя структура jquery:

[email protected]
├── [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│   ├─┬ [email protected]
│   │ ├── [email protected]
│   │ └─┬ [email protected]
│   │   └── [email protected]
│   └── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

в соответствии с автором node -gyp https://github.com/TooTallNate/node-gyp/issues/155

Ya, Python 3 и Python 2 не совместимы, однако gyp требует Python 2.

Ответ 3

Если вам не нужен полный набор функций Contextify, Cheerio выполняется намного быстрее и гораздо проще для установки в Windows и предоставляет большинство функций jQuery, которые вы использовали бы на стороне сервера.

http://matthewmueller.github.com/cheerio/

Ответ 4

Я построил его с помощью

  • Windows 8 x64 DP
  • Python 2.7 (на PATH)
  • Node 0.8.11 x86 (на PATH)
  • Visual Studio 2010 (требуется установленная функция Visual С++)

contextify 0.1.3 binaries (возможно, только для работы с 32-разрядной версией Node) можно найти в моем репозитории GitHub. Они работают вместе с jsdom 0.2.18 (текущая версия на 2012-10-13 годы).

Ответ 5

Из jsdom readme.md:

Окна

  • Последняя версия x86-версии [ Node.js для Windows], а не версия x64.
  • Копия Visual С++ 2010 Express.
  • Копия [Python 2.7], установленная в местоположении по умолчанию C:\Python27.

Я сделал именно это, и все получилось отлично, за исключением того, что для меня работала и версия x64.

Ответ 6

Самый простой способ - установить пакет windows-build-tools. У этого есть все, что вам нужно для создания контекста. Запустите команду из приглашения оболочки питания с правами администратора.

npm install --global --production windows-build-tools

https://www.npmjs.com/package/windows-build-tools

Эти инструменты необходимы для компиляции популярных встроенных модулей. Он также установит Python 2.7, соответствующим образом настроит ваш компьютер и npm.

Содержание

  • Компиляторы Visual С++ (таргетинг на x86, X64 и ARM)
  • Компиляторы Visual С++ (таргетинг на x86, X64 и ARM)
  • Заголовки и библиотеки Visual С++ (CRT и STL)
  • Скрипты сборки Visual С++ (таргетинг на рабочий стол Windows)
  • Microsoft Build Tools 2015 (MSBuild)
  • Windows SDK 8.1 (необязательно, по умолчанию)
  • Windows SDK 10 (опционально, отключено по умолчанию)
  • ATL и MFC (необязательно, по умолчанию отключено)
  • Командные подсказки С++ для встроенных инструментов

Ответ 7

Мне нужно было убедиться, что я использую Python 2.7.3 и запускаю строку cmd как администратор (щелкните правой кнопкой мыши запустите как администратор).

> python --version

Я построил его с помощью

  • Windows 7 x64
  • Python 2.7.3
  • Node 0.8.17
  • Visual Studio 10