TimelordUK / node-sqlserver-v8

branched from node-sqlserver, SQL server driver compatible with all versions of Node
Other
135 stars 43 forks source link

npm install --save msnodesqlv8 fails MSBuild.exe failed with exit code: 1 #313

Closed CarlosOnline closed 7 months ago

CarlosOnline commented 7 months ago

npm install --save msnodesqlv8 fails on the MSBuild.exe command line. Had to run as administrator to get this far.

Does msnodesqlv8 require MSBuild.exe to build? Can I get a version with pre-built binaries instead?

See attached log msnodesqlv8.log

npm install --save msnodesqlv8 --verbose

...

270 error C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for '..\binding.gyp' exited with code 1. [c:\vue\sql3\node_modules\msnodesqlv8\build\sqlserverv8.vcxproj]
270 error Done Building Project "c:\vue\sql3\node_modules\msnodesqlv8\build\sqlserverv8.vcxproj" (default targets) -- FAILED.
270 error Done Building Project "c:\vue\sql3\node_modules\msnodesqlv8\build\binding.sln" (default targets) -- FAILED.

...

271 error gyp ERR! stack Error: `C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1
271 error gyp ERR! stack at ChildProcess.<anonymous> (C:\node\node-v18.17.1-win-x64\node_modules\npm\node_modules\node-gyp\lib\build.js:209:23)
271 error gyp ERR! stack at ChildProcess.emit (node:events:514:28)
TimelordUK commented 7 months ago

all binaries for linux windows are attached to the release and the correct one should be downloaded automatically

https://github.com/TimelordUK/node-sqlserver-v8/releases

if you are in the msnodesqlv8 folder under node_modules

in case below it has taken a cached version

❯ npm run install-verbose

> msnodesqlv8@4.1.2 install-verbose
> prebuild-install --verbose || node-gyp rebuild

prebuild-install info begin Prebuild-install version 7.1.1
prebuild-install info looking for local prebuild @ prebuilds\msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info found cached prebuild
prebuild-install info unpacking @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info unpack resolved to C:\Users\\dev\js\sql\app\msnodesqlv8_mssql_sample\node_modules\msnodesqlv8\build\Release\sqlserverv8.node
prebuild-install info unpack required C:\Users\\dev\js\sql\app\msnodesqlv8_mssql_sample\node_modules\msnodesqlv8\build\Release\sqlserverv8.node successfully
prebuild-install info install Successfully installed prebuilt binary!

msnodesqlv8_mssql_sample\node_modules\msnodesqlv8 on  master is 📦 v4.1.2 via  v21.1.0 took 3s

if i delete that cached version it tries to pull from the release page

msnodesqlv8_mssql_sample\node_modules\msnodesqlv8 on  master is 📦 v4.1.2 via  v21.1.0
❯ del C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz

msnodesqlv8_mssql_sample\node_modules\msnodesqlv8 on  master is 📦 v4.1.2 via  v21.1.0
❯ npm run install-verbose

> msnodesqlv8@4.1.2 install-verbose
> prebuild-install --verbose || node-gyp rebuild

prebuild-install info begin Prebuild-install version 7.1.1
prebuild-install info looking for local prebuild @ prebuilds\msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info looking for cached prebuild @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install http request GET https://github.com/TimelordUK/node-sqlserver-v8/releases/download/v4.1.2/msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install http 200 https://github.com/TimelordUK/node-sqlserver-v8/releases/download/v4.1.2/msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info downloading to @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz.2876-f5fbed9e86fd8.tmp
prebuild-install info renaming to @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info unpacking @ C:\Users\ms\AppData\Local\npm-cache\_prebuilds\ab7673-msnodesqlv8-v4.1.2-node-v120-win32-x64.tar.gz
prebuild-install info unpack resolved to C:\Users\ms\dev\js\sql\app\msnodesqlv8_mssql_sample\node_modules\msnodesqlv8\build\Release\sqlserverv8.node
prebuild-install info unpack required C:\Users\ms\dev\js\sql\app\msnodesqlv8_mssql_sample\node_modules\msnodesqlv8\build\Release\sqlserverv8.node successfully
prebuild-install info install Successfully installed prebuilt binary!
TimelordUK commented 7 months ago

are you behind a firewall is npm being blocked from reaching the release page in which case it will indeed try and build locally or if are running on architecture where no binaries exist but windows has 32 and 64 bit for pretty much all node and electron versons and the release shoulld be put under

dir .\build\Release\

if all else fails you could try and download the correct binary from the web page itself

TimelordUK commented 7 months ago

looking at your log is see

270 error Time Elapsed 00:00:00.51 271 error prebuild-install info begin Prebuild-install version 7.1.1 271 error prebuild-install info looking for local prebuild @ prebuilds\msnodesqlv8-v4.1.2-node-v108-win32-x64.tar.gz 271 error prebuild-install info looking for cached prebuild @ C:\Users\x-fred\AppData\Local\npm-cache_prebuilds\f132b1-msnodesqlv8-v4.1.2-node-v108-win32-x64.tar.gz 271 error prebuild-install http request GET https://github.com/TimelordUK/node-sqlserver-v8/releases/download/v4.1.2/msnodesqlv8-v4.1.2-node-v108-win32-x64.tar.gz 271 error prebuild-install warn install unable to get local issuer certificate

TimelordUK commented 7 months ago

it cannot fetch the binary it needs so tries to build locally

CarlosOnline commented 7 months ago

Cool thanks. I used set NODE_TLS_REJECT_UNAUTHORIZED=0 to get it to work.