JavaScript — получение предупреждений D9025 и ошибок C1083 из модулей node.js … У меня нет идей

Во-первых, я должен быть ясен, я ни в коем случае не гуру javascript. Я просто в восторге от этого, и мне нравится узнавать что-то новое.

Я использую Windows 7 Ultimate x64 с пакетом обновления 1 (SP1), обновления для Windows включены, node.js — v0.10.22. Я пробовал этот процесс индивидуально с Visual Studio C ++ Express версий 2008, 2010 и 2012, каждый .net Framework устанавливается в порядке с обновлениями. Я также попробовал последний пакет обновлений каждой версии после первоначальной чистой установки.

Итак, в теории у меня в какой-то момент должна была быть каждая возможная комбинация … И я дважды проверил переменные окружения и перезагрузился для каждой версии, просто для хорошей меры. Тем не менее, он все равно терпит неудачу так же

Мне удалось отследить это назад, насколько node-gyp rebuild команда в многочисленных модулях (node-ant, sailsи т.д ..), который выбрасывает:

E:\Temp\node-test\node_modules\node-ant\node_modules\usb>node "C:\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild

Build started 2013/12/06 19:46:52.
__________________________________________________
Project "E:\Temp\node-test\node_modules\node-ant\node_modules\usb\build\binding.sln" (default targets):

Target ValidateSolutionConfiguration:
Building solution configuration "Release|x64".
Target Build:
Target usb_bindings:
VCBuild.exe E:\Temp\node-test\node_modules\node-ant\node_modules\usb\build\usb_bindings.vcproj "Release|x64"cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
Project : warning PRJ0018: The following environment variables were not
found:
Done building target "usb_bindings" in project "binding.sln" -- FAILED.
Done building target "Build" in project "binding.sln" -- FAILED.

Done building project "binding.sln" -- FAILED.

Build FAILED.
cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
cl : Command line warning D9025: overriding '/MT' with '/MD'
Project : warning PRJ0018: The following environment variables were not found:
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
e:\temp\node-test\node_modules\node-ant\node_modules\usb\src\node_usb.h(5): fatal error C1083: Cannot open include file: 'string': No such file or directory
5 Warning(s)
3 Error(s)

Time Elapsed 00:00:00.17
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\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.1.7601
gyp ERR! command "node" "C:\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"gyp ERR! cwd E:\Temp\node-test\node_modules\node-ant\node_modules\usb
gyp ERR! node -v v0.10.22
gyp ERR! node-gyp -v v0.11.0
gyp ERR! not ok
npm ERR! [email protected] preinstall: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the usb package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls usb
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\nodejs\\\\node.exe" "C:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-ant" "--msvs_version=auto"npm ERR! cwd E:\Temp\node-test
npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.14
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     E:\Temp\node-test\npm-debug.log
npm ERR! not ok code 0

Моя последняя и, возможно, самая информативная попытка, я обнаружил, что могу указать инструменты сборки Visual Studio, которые можно использовать с …

E:\Temp\node-test>npm install node-ant --msvs_version=auto

…из которых кажется =auto пытается определить версию из переменных среды (?).

Я попытался указать каждую из следующих версий, которые я нашел в списке в C:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\MSVSVersion.py файл, =2008, =2010 а также =2012те, которые даже не доходят до ошибки, указанной выше, терпят неудачу даже раньше, с небольшими изменениями следующей ошибки, жалуясь на версии проекта:

E:\Temp\node-test>npm install node-ant --msvs_version=2008
npm http GET https://registry.npmjs.org/node-ant
npm http 304 https://registry.npmjs.org/node-ant
npm http GET https://registry.npmjs.org/usb
npm http 304 https://registry.npmjs.org/usb

> [email protected] preinstall E:\Temp\node-test\node_modules\node-ant\node_modules\usb
> node-gyp rebuildE:\Temp\node-test\node_modules\node-ant\node_modules\usb>node "C:\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild

build/binding.sln(1): Solution file error MSB5014: File format version is not recognized.  MSBuild can only read solution files between versions 7.0 and 9.0, in
clusive.
gyp ERR! build error
gyp ERR! stack Error: `msbuild` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\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.1.7601
gyp ERR! command "node" "C:\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"gyp ERR! cwd E:\Temp\node-test\node_modules\node-ant\node_modules\usb
gyp ERR! node -v v0.10.22
gyp ERR! node-gyp -v v0.11.0
gyp ERR! not ok
npm ERR! [email protected] preinstall: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] preinstall script.
npm ERR! This is most likely a problem with the usb package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls usb
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\nodejs\\\\node.exe" "C:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-ant" "--msvs_version=2008"npm ERR! cwd E:\Temp\node-test
npm ERR! node -v v0.10.22
npm ERR! npm -v 1.3.14
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     E:\Temp\node-test\npm-debug.log
npm ERR! not ok code 0

GitHub репо был довольно тихим в течение долгого времени, поэтому я полагаю, что спрашивать там может быть бессмысленно (хотя я собираюсь искать вилки репо, только заметил, что их 32), но в каждом отчете Google помогает мне найти C1083: Cannot open include file: В остальной части строки указан определенный файл, который он не может найти. В отличие от моего 'string' раздел.

Это мой первый вопрос, так что дайте мне знать, если вам нужно больше деталей. Я — тестировщик программного обеспечения Java днем, поэтому я не привыкать использовать инструменты отладки. У меня сейчас действительно нет идей, кто-нибудь сможет указать мне направление решения этой головной боли …?

[править] Для справки, вот несколько похожих проблем, которые я обнаружил, в каждой из которых я попробовал предложения, сделанные как можно точнее.

И самый похожий (без ответа) в официальном списке репо.

[edit2] Извинения за правки, но еще один момент, который может или не может быть важным. У меня установлен CygWin, и он включен в мой системный путь. Честно говоря, я чувствую себя более комфортно в Linux, поэтому я естественно использую команды терминала * nix внутри Windows ‘ cmd незамедлительный. Может ли это быть причиной того, что некоторые узловые модули неправильно определяют систему * nix для чего-то, что нужно инструментам сборки Windows …?

1

Решение

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

Простое двухэтапное исправление:

  • Все команды запускались через командную строку разработчика Visual Studio, я использовал VS2012.
  • устанавливать node-gyp как глобальный модуль: npm install -g node-gyp,
  • Укажите версию VS при установке: npm install sails --msvs_version=2012,

До сих пор это работало для каждого пакета, который я пробовал, который использует Visual Studio для создания части своего API во время установки.

Я считаю, что это также работает для VS2010; В этом случае укажите соответствующие --msvs_version,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]