我有一个使用bufferutils
和utf-8-validate
的NPM项目,两者都需要node-gyp来安装它们。当我npm install
时,我收到以下错误:
> bufferutil@1.2.1 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:bufferutil@1.2.1 bufferutil@1.2.1 install: `node-gyp rebuild`
npm WARN install:bufferutil@1.2.1 Exit status 1
之前它因为没有安装Python 2.7而失败,现在就是这个。这让我很头疼。我该怎么办呢?
答案 0 :(得分:67)
下面的答案代表手动安装,但有一种更简单的方法:自动安装。
以管理员身份打开Powershell并运行npm install -g windows-build-tools
。
安装需要时间,但它对我来说就像一个魅力!
答案 1 :(得分:17)
我在GitHub上找到了这个brilliant solution:
python --version
来检查python是否在您的路径中。如果没有那么choco install python2 -y
))并将python.exe
添加到您的PATH变量中。npm config -g set msvs_version 2015
npm i
,而不会看到奇怪的错误消息我的噩梦消失了!
答案 2 :(得分:1)
开始为我工作
没有任何帮助(已安装msvs_version 2017,2015)
带鼻子
node-gyp错误来自python路径和msvsc路径
npm config list
输出(设置正确的安装路径和msvs)
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.12.0 node/v12.9.0 win32 ia32"
; userconfig C:\Users\balaji\.npmrc
init-author-name = "Balaji"
init-license = "MIT"
msvs_version = "2017"
node_gyp = "C:\\Users\\balaji\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js"
python = "C:\\Users\\balaji\\.windows-build-tools\\python27/python.exe"
; globalconfig C:\Users\balaji\AppData\Roaming\npm\etc\npmrc
; builtin config undefined
prefix = "C:\\Users\\balaji\\AppData\\Roaming\\npm"
; node bin location = C:\Program Files (x86)\nodejs\node.exe
; cwd = G:\all clients project\2020\angalware
; HOME = C:\Users\balaji
; "npm config ls -l" to show all defaults.
设置全局(例如)
npm config -g set msvs_version 2015
设置地区(例如)
npm config set msvs_version 2015
路径校正
npm config set python /path/to/executable/python
针对尚未安装的用户(它将安装msvsc和python)
npm install -g windows-build-tools
安装后检查上述givn提示,例如路径和版本一切
快乐的编码。...
答案 3 :(得分:0)
从较旧版本的节点更新到节点v12时遇到此问题。 bcrypt库存在一个特殊问题。我刚刚卸载了v12,然后安装了v10,一切正常。
答案 4 :(得分:0)
我在其他任何地方都找不到我的解决方案,所以想与我分享。
在Windows 10上运行节点v10.16.3
安装Windows-build-tools-
npm install --global --production windows-build-tools
在C:\ Users [您的用户名] .npmrc中显式设置python路径-就我而言,就像这样:
python=c:\users\akeel\.windows-build-tools\python27\python
答案 5 :(得分:0)
在这里找到了解决方案: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
答案 6 :(得分:-1)
尝试在Winturds 7和10上安装ZeroMQ(包括.NET和Visual Studio的荒谬且完全无用的安装)浪费了几天多的时间后,创建一个Ubuntu USB启动盘实际上更加容易,并且安装节点和ZeroMQ 。现在,我实际上可以进行富有成效的工作。
答案 7 :(得分:-1)
使用WSL对我有效(仅Windows 10用户)
不知道WSL是Windows中的Linux命令外壳的人
只需按照本指南安装WSL https://wiki.ubuntu.com/WSL 并使用命令
安装nodejs和npm my sudo apt-get install nodejs npm -y