Почему для node -gyp (и других) требуется Visual Studio?

node -gyp - это не первое, что я вам требую, но это кажется странным. Я предполагаю, что это имеет какое-то отношение к созданию исполняемых файлов или плагинов или что-то еще, но нет ли зависимости меньше полной версии Visual Studio или VS Express, которая может соответствовать счету? Я, хотя вы действительно могли писать, создавать и запускать .net-приложения без копии VS, если вы действительно этого хотели. Я прошу с намерением, по крайней мере, изучить некоторые С++ или что-то еще, что нужно, пытаясь решить проблему, хотя я считаю, что это нетривиально, если Joyent не смог найти способ обойти его достаточно легко.

Примечание. У меня не проблема с node -gyp как зависимость node, но пользователи Windows с этой проблемой должны попробовать обновить node, загрузив из Интернета и переустановить из этого файла exe, прежде чем делать какие-либо действия другого безумия там, что я узко уклонился. Кажется, что они исправили проблему только в 2010 году, не очень громко объявляя ее, и npm действительно не работает при попытке обновить себя и node в Windows.

Ответ 3

Node и другие "близкие к ядру" библиотеки, такие как node -gyp, компилятор С++. В большинстве средах Dev в Windows это будет Visual Studio в сочетании с Python. Однако вы также можете использовать MinGW или Cygwin с установленным gcc.

Опыт работы с gcc напрямую сравним с компиляцией .NET-кода на платформе Windows. Однако gcc не чувствует себя родным в Windows.

Ответ 4

Мне удалось запустить node -gyp 0.8.x в Windows 10 без Visual Studio, используя windows-build-tools.

Просто запустите как администратор:

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

И дождитесь завершения установки.

Содержание

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