Подтвердить что ты не робот

Npm install, требующая node -gyp не работает в Windows

У меня есть проект NPM, в котором используются bufferutils и utf-8-validate, требующие node -gyp для их установки. Когда я делаю npm install, я получаю следующую ошибку:

> [email protected] install C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil                       
> node-gyp rebuild                                                                                             


C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil {git}{hg}                                        
{lamb} if not defined npm_config_node_gyp (node "C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\bin\node-g
yp-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.    
  bufferutil.cc                                                                                                
C:\Users\Marek\.node-gyp\5.1.1\include\node\v8.h(18): fatal error C1083: Cannot open include file: 'stddef.h': 
 No such file or directory [C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil\build\bufferutil.vcx 
proj]                                                                                                          
gyp ERR! build error                                                                                           
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1           
gyp ERR! stack     at ChildProcess.onExit (C:\Users\Marek\AppData\Roaming\npm\node_modules\npm\node_modules\nod
e-gyp\lib\build.js:276: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 10.0.10586                                                                          
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Marek\\AppData\\Roaming\\npm\\node_modules\\
npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"                                                       
gyp ERR! cwd C:\Users\Marek\WEB\moje-skoly\web-app\node_modules\bufferutil                                     
gyp ERR! node -v v5.1.1                                                                                        
gyp ERR! node-gyp -v v3.2.1                                                                                    
gyp ERR! not ok                                                                                                
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild`                                 
npm WARN install:[email protected] Exit status 1                       

Раньше он терпел неудачу из-за того, что Python 2.7 не установлен, теперь это так. Это вызывает у меня головные боли. Что мне делать с этим?

4b9b3361

Ответ 1

Ответ ниже означает ручную установку, но есть гораздо более простой способ: автоматическая установка.

Откройте Powershell от имени администратора и запустите npm install -g windows-build-tools.

Установка занимает много времени, но для меня это сработало!

Ответ 2

Я нашел это блестящее решение на GitHub:

  1. Ваша ОС ДОЛЖНА быть Windows
  2. Проверьте, что Python находится на вашем пути, написав python --version в консоли. Если нет, то
  3. Загрузите python 2.7 (я рекомендую chocolatey (choco install python2 -y)) и добавьте python.exe в переменную PATH.
  4. Разве вы не на Windows 7? Пропустите 5 и 6.
  5. Убедитесь, что у вас установлен .NET 4.5. 1+. Если нет, то
  6. Загрузите и установите .NET 4.5.1 (.NET 4.5.2 также будет отлично работать)
  7. Загрузите Microsoft Visual C++ Build Tools 2015 Technical Preview
  8. Используйте выборочную установку. Установите Windows 8.1 SDK, если вы еще этого не сделали. Видимо, не имеет значения, на какой ОС вы работаете. Вам просто нужен Windows 8.1 SDK.
  9. Установите для переменной конфигурации npm msvs_version значение 2015: npm config -g set msvs_version 2015
  10. Выполните npm i в каком-либо проекте с node-gyp в качестве зависимости, не видя странных сообщений об ошибках

Мои ночные кошмары ушли!

Ответ 3

Потратив много часов в течение нескольких дней, пытаясь установить ZeroMQ на Winturds 7 и 10 (включая нелепую и совершенно бесполезную установку .NET и Visual Studio), на самом деле было проще создать загрузочный диск Ubuntu USB и установить узел и ZeroMQ. Теперь я действительно могу выполнять продуктивную работу.

Ответ 4

У меня была эта проблема при обновлении с более старой версии узла до узла v12. Была определенная проблема с библиотекой bcrypt. Я просто удалил v12 и установил v10 и все заработало.

Ответ 5

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

Запуск узла v10.16.3 в Windows 10

Установить windows-build-tools -

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

Установите путь к Python явно в C:\Users [ваше имя пользователя].npmrc - В моем случае это примерно так:

python=c:\users\akeel\.windows-build-tools\python27\python

Ответ 6

Нашел решение здесь: https://spin.atomicobject.com/2019/03/27/node-gyp-windows/

Мне пришлось установить Windows Build Tools 2015, а затем настроить Node для его использования.

Вот команды, которые я использовал:

npm install --global --production windows-build-tools --vs2015
npm config set msvs_version 2015 –global