Ошибка установки npm: "Инструменты сборки для v120 (Platform Toolset = 'v120) не могут быть найдены"

При запуске npm install, который требовал восстановления node -gyp, была выведена следующая ошибка сборки:

MSB8020: инструменты сборки для v120 (Platform Toolset = 'v120) не могут быть найденным. Чтобы построить с помощью инструментов сборки v120, установите v120 строить инструменты. Кроме того, вы можете обновить текущий Visual Инструменты Studio, выбрав меню "Проект" или щелкните правой кнопкой мыши решение, а затем выбрав "Retarget solution"

Информация о системе

  • Windows 10 (x64)
  • Visual Studio 2015
  • node v0.12.7
  • npm v2.11.3
  • node -gyp v2.0.1

Ответы

Ответ 1

TL;DR

Используйте параметр msvs_version: npm install --msvs_version=2015

Что делать, если параметр msvs_version не работает?

Если параметр msvs_version не работает, возможно, это связано с тем, что среда сборки Visual С++ 2015 не установлена.

Установить среду сборки Visual С++

Вариант 1: Visual Studio 2015

  • Во время установки VS2015 выберите "Пользовательский". Или, если вы уже установили VS2015, перейдите в раздел "Удалить или изменить программу" > выберите VS2015 из спискa > нажмите "Изменить" > нажмите "Изменить"
  • Установите флажок "Общие инструменты для Visual С++ 2015" в разделе "Языки программирования" > "Visual С++"
  • Завершите установку VS2015

Вариант 2: Visual С++ Build Tools 2015

В качестве альтернативы VS2015 вы можете установить Visual С++ Build Tools 2015, выпущенный Microsoft:

  • Во время установки VС++ выберите "Пользовательский"
  • Проверьте параметры "Windows 8.1 SDK" и "Windows 10 SDK"
  • Завершите установку VС++

Использовать msvs_version

Теперь, когда среда сборки Visual С++ 2015 установлена, вы можете указать npm использовать ее с помощью параметра msvs_version:

  • Открыть PowerShell
  • Используйте параметр msvs_version: npm install --msvs_version=2015

Параметры конфигурации (не обязательно)

Необязательно вместо указания msvs_version в командной строке вы можете настроить npm, чтобы всегда включать параметр msvs_version, добавив его в ваш npmrc или package.json:

npmrc

Откройте PowerShell и запустите npm config set msvs_version 2015, который добавит этот параметр в файл npmrc пользователя. В дальнейшем, каждый раз, когда вы запускаете npm install, как этот пользователь, параметр msvs_version=2015 будет автоматически включен

необязательно, вы можете включить глобальный флаг npm config set msvs_version 2015 --global, если вы планируете войти в систему с разными учетными записями Windows, и этот параметр должен применяться ко всем учетным записям на компьютере.

package.json

Измените файл проекта package.json, чтобы включить:

"config": {
  "msvs_version": 2015
}

В дальнейшем, каждый раз, когда вы запускаете npm install, для этого проекта автоматически включается параметр msvs_version=2015


Изменения в статье

  • Шаги, исправленные после дальнейшего расследования, вдохновленные Чаком, комментируют набор инструментов v120 (спасибо @ChuckWalbourn)
  • Добавлены параметры конфигурации
  • Добавлена ​​опция VС++ Build Tools
  • Обновлена ​​ссылка на VС++ Build Tools для официальной версии

Ответ 2

Я хотел добавить комментарий в ответ 2Toad, но stackoverflow не позволяет мне. Вы можете установить msvs_version глобально с помощью этой команды:

npm config set msvs_version 2015 --global

Это позволит вам поместить его в каждый объект конфигурации проекта.

Ответ 3

Я поделюсь этим ответом, поскольку ни одна из других исправлений не разрешила мою проблему. У меня были те же ошибки, но с параметром msvs:

npm install --msvs_version=2015

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

Короче говоря, я узнал, что MSBuild теперь упакован с Visual Studio и больше не упакован с .NET. Конечно, у меня была эта запись в переменной PATH:

C:\Windows\Microsoft.NET\Framework\v4.0.30319;

и, следовательно, вызывается неправильная (старая) версия MSBuild. Я удалил эту запись и добавил следующий путь, который имеет отношение к VS2015:

C:\Program Files (x86)\MSBuild\14.0\Bin\

Проблема решена.

Ответ 4

Я уже 2 дня устанавливаю все версии VS...

npm install oracledb --msvs_version=2015

Возвратите всю массу ошибок:

[..]node-gyp\6.9.1\include\node\v8.h(18): fatal error C1083[..]

Используя

npm install oracledb --msvs_version=2013

Возвратите много предупреждений, скомпилируйте, но не работает должным образом.

[..]warning C4995: 'v8::Value::ToUint32'[..]

Это мой худший опыт работы с модулем npm. Какая пустая трата времени:/

Ответ 5

Настройка версии до 2015 года не помогла мне. Попробуйте установить его вместо 2013:

npm config set msvs_version 2013

или

npm config set msvs_version 2015