Проблемы с NPM и node-gyp в Windows

У меня проблемы с пакетами npm на моей рабочей станции Windows ... У меня есть набор зависимостей NPM в моем _ 1_ файл:

"devDependencies": {
    "babel-plugin-transform-react-jsx": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "grunt": "^0.4.5",
    "grunt-babel": "^6.0.0",
    "grunt-contrib-connect": "^0.11.2",
    "grunt-contrib-jasmine": "^0.9.2",
    "grunt-contrib-sass": "^0.9.2",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-exec": "^0.4.6",
    "grunt-template-jasmine-requirejs": "^0.2.3",
    "karma-chrome-launcher": "^0.2.2",
    "karma-firefox-launcher": "^0.1.7",
    "karma-requirejs": "^0.2.2",
    "requirejs": "^2.1.22",
    "grunt-contrib-jshint": "^0.11.3",
    "grunt-karma": "^0.12.1",
    "karma": "^0.13.15",
    "karma-jasmine": "^0.3.6",
    "karma-phantomjs-launcher": "^0.2.1"
  }

И когда я пытаюсь запустить npm install, я получаю странную ошибку, связанную с пакетом node-gyp и чем-то вроде \msbuild.exe.

Вот ошибка:

c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate>if not defined npm_config_node_gyp (node "c:\Program Files\nodejs\node_modules\npm\bin\node-gyp
-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate\build\validation.vcxproj(20,3): error MSB4019: The imported project "c:\Microsoft.Cpp.Default.
props" was not found. Confirm that the path in the  declaration is correct, and that the file exists on disk.
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:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd c:\Users\dmytro.medvid\sites\evolution\node_modules\utf-8-validate
gyp ERR! node -v v5.1.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`
npm WARN install:[email protected] Exit status 1
npm WARN EPACKAGEJSON [email protected] No repository field.

Может ли кто-нибудь помочь разобраться с этим вопросом? Я не опытный пользователь Windows, но на данный момент я должен работать с Windows :(

ОБНОВЛЕНО: вот ошибки log, который я обновляю каждый раз, когда появляются новые ошибки NPM.

Сведения о системе: 64-разрядная операционная система Windows 7 Enterprise.

Версия узла: v5.1.0

Версия NPM: v3.3.12

Версия Python: v2.7.1

Также я установил инструменты сборки Microsoft Visual C ++ (указанные в ответе ниже ). Версия 14.0


person Dmytro Medvid    schedule 17.12.2015    source источник
comment
Я проверил свои переменные среды, и все выглядит нормально. Также я проверил, что у меня есть доступ к python в CMD. Версия Python - 2.7.1.   -  person Dmytro Medvid    schedule 26.12.2015
comment
Также я установил инструменты сборки Microsoft Visual C ++ по этой ссылке: microsoft. ru / en-in / download / details.aspx? id = 48159 (указано в ответе ниже). Версия инструментов сборки Microsoft Visual C ++ - 14.   -  person Dmytro Medvid    schedule 26.12.2015
comment
У меня работает github.com/nodejs/node-gyp#installation   -  person Thanh Truong    schedule 14.05.2017


Ответы (5)


Напишите этот код в командной строке администратора:

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

А затем нажмите Enter.

person Maizied Hasan Shuvo    schedule 05.02.2018
comment
мне нужно перезагрузить мою машину для этого? Я запустил его, но все равно получаю сообщение об ошибке. - person PinoyStackOverflower; 06.03.2020

Вам потребуются инструменты сборки Microsoft Visual C ++, которые входят в состав Visual Studio. Однако теперь они также доступны для автономной загрузки. . После установки этих инструментов и перезагрузки компьютера вы сможете установить пакеты, которые используют node-gyp под капотом.

person Pier-Luc Gendreau    schedule 17.12.2015
comment
Спасибо за Ваш ответ. Сейчас попробую. Почему так больно работать под виндой? - person Dmytro Medvid; 21.12.2015
comment
Я установил это расширение и похоже, что оно помогло решить проблему. Но у меня появился новый, связанный с node-gyp ... Вот журнал ошибок, я зафиксировал его в Git: github.com/web-jenezis/jenezis-project-bootstrap/blob/master/ - person Dmytro Medvid; 21.12.2015
comment
Это должно сработать, попробуйте удалить node_modules и запустить npm cache clean - person Pier-Luc Gendreau; 22.12.2015
comment
Спасибо за Ваш ответ. Я делаю это, но у меня есть ошибки с помощью инструмента msbuild ... Также я обновил журнал ошибок, указав последние ошибки (github.com/web-jenezis/jenezis-project-bootstrap/blob/master/). Не знаю, почему это происходит ... Пожалуйста, можете ли вы проверить журнал ошибок и попытаться помочь мне с этой проблемой - person Dmytro Medvid; 22.12.2015
comment
Вы можете попробовать npm i utf-8-validate --msvs_version=2015 - person Pier-Luc Gendreau; 22.12.2015
comment
Я пробовал. Но результат тот же. Я обновил журнал ошибок, указав последние ошибки: github.com/ web-jenezis / jenezis-project-bootstrap / blob / master / - person Dmytro Medvid; 23.12.2015
comment
Постараюсь сделать это в системе Unix ... но на данный момент для меня эта проблема не решена .. :( - person Dmytro Medvid; 26.12.2015

Windows откройте PowerShell в инструменте администрирования и выполните эту команду.

npm install --global --production windows-build-tools 
person Rijo    schedule 18.09.2018


Я создал проблему на github для node-gyp. А также вот обсуждение похожей проблемы. Мне это, наверное, не помогло, но, может быть, кому-то это пригодится.

person Dmytro Medvid    schedule 03.01.2016