npm install loom-js 安装报错探源

环境

  • Windows 10
  • Node 12.22.12
  • Vs2019

问题

前不久使用truffle框架学习cryptozombies,安装truffle遇到报错,当时已经解决了(传送门)。
今天发现当时忘了安装loom-js,于是进行安装,结果遇到报错:

PS G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle> npm i loom-js -S
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: New package name format for new versions: @ethereumjs/tx. Please update.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.      
npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated [email protected]: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: Use mz or fs-extra^3.0 with Promise Support
npm WARN deprecated [email protected]: ⚠️  WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm ERR! D:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/frozeman/WebSocket-Node.git
npm ERR!
npm ERR! fatal: unable to connect to github.com:
npm ERR! github.com[0: 127.0.0.1]: errno=Unknown error
npm ERR!
npm ERR!
npm ERR! exited with error code: 128

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2022-06-02T03_08_10_490Z-debug.log  

这个报错很简单,npm ERR! github.com[0: 127.0.0.1]: errno=Unknown error,127.0.0.1明显是我使用的代理,而访问git://github.com/frozeman/WebSocket-Node.git失败了,那是因为我设置的是http和https的代理,只要改为使用https即可。
先看看原本的设置:

PS G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle> git config -l --global
credential.https://gitee.com.provider=generic
http.https://github.com.proxy=socks5://127.0.0.1:10808
https.https://github.com.proxy=socks5://127.0.0.1:10808

再添加下述配置即可:

PS G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle> git config --global url."https://".insteadOf git://

再重新安装,还是报错了

PS G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle> npm i loom-js -S      
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: New package name format for new versions: @ethereumjs/tx. Please update.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated [email protected]: core-js@<3.4 is no longer maintained and not recommended for 
usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: ⚠️  WARNING ⚠️ tar.gz module has been deprecated and your appli
cation is vulnerable. Please use tar module instead: https://npmjs.com/tar
npm WARN deprecated [email protected]: Use mz or fs-extra^3.0 with Promise Support
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: This module has been superseded by the multiformats module 
npm WARN deprecated [email protected]: This module has been superseded by the multiformats module  

> [email protected] preinstall G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
> node node-scrypt-preinstall.js


> [email protected] install G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)


G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket>if not defined npm_config_node_gyp (node "C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“-m”开关。
  bufferutil.cc
  win_delay_load_hook.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(26,30): error C2039: "Handle": 不是 "v8" 的成员 [G:\tgit\eth\cryptozombiestrial\or
acle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]        
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8-platform.h(16): message : 参
见“v8”的声明 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules
\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(26,36): error C2061: 语法错误: 标识符“Handle” [G:\tgit\eth\cryptozombiestrial\oracle
\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(34,14): error C2065: “target”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracle
\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(34,1): error C2660: “v8::FunctionTemplate::GetFunction”: 函数不接受 0 个参数 [G:\tgit
\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\
bufferutil.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(6126,46): message : 参见“v8
::FunctionTemplate::GetFunction”的声明 (编译源文件 ..\src\bufferutil.cc) [G:\tgit\eth\cryptozombiestrial
\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]     
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(50,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(57,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(68,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(70,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(89,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(90,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(92,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypto
zombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil. 
vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(93,1): error C2660: “v8::Value::Int32Value”: 函数不接受 0 个参数 [G:\tgit\eth\cryptoz
ombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.v 
cxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2709,40): message : 参见“v8
::Value::Int32Value”的声明 (编译源文件 ..\src\bufferutil.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthP
riceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(94,1): error C2660: “v8::Value::Int32Value”: 函数不接受 0 个参数 [G:\tgit\eth\cryptoz
ombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.v 
cxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2709,40): message : 参见“v8
::Value::Int32Value”的声明 (编译源文件 ..\src\bufferutil.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthP
riceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(115,12): error C2065: “Handle”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(115,19): error C2275: “v8::Object”: 将此类型用作表达式非法 [G:\tgit\eth\cryptozombiestri
al\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]   
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(3496): message : 参见“v8::O
bject”的声明 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_module
s\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(115,27): error C2065: “target”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket 
\src\bufferutil.cc(115,6): error C2182: “init”: 非法使用“void”类型 [G:\tgit\eth\cryptozombiestrial\ora
cle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(116,1): error C2143: 语法错误: 缺少“;”(在“{”的前面) [G:\tgit\eth\cryptozombiestrial\ora
cle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(116,1): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) [G:\tgit\eth\cryptozombiestrial\
oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\bufferutil.cc(121,1): warning C4312: “类型强制转换”: 从“int”转换到更大的“node::addon_register_func” [G:\
tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\bu
ild\bufferutil.vcxproj]
  validation.cc
  win_delay_load_hook.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(108,30): error C2039: "Handle": 不是 "v8" 的成员 [G:\tgit\eth\cryptozombiestrial\o
racle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8-platform.h(16): message : 参    
见“v8”的声明 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules
\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(108,36): error C2061: 语法错误: 标识符“Handle” [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(114,14): error C2065: “target”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(114,1): error C2660: “v8::FunctionTemplate::GetFunction”: 函数不接受 0 个参数 [G:\tgi
t\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build
\validation.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(6126,46): message : 参见“v8
::FunctionTemplate::GetFunction”的声明 (编译源文件 ..\src\validation.cc) [G:\tgit\eth\cryptozombiestrial
\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(133,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\crypt
ozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation
.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(142,12): error C2065: “Handle”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(142,19): error C2275: “v8::Object”: 将此类型用作表达式非法 [G:\tgit\eth\cryptozombiestri
al\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(3496): message : 参见“v8::O
bject”的声明 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_module
s\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(142,27): error C2065: “target”: 未声明的标识符 [G:\tgit\eth\cryptozombiestrial\oracl
e\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(142,6): error C2182: “init”: 非法使用“void”类型 [G:\tgit\eth\cryptozombiestrial\ora
cle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(143,1): error C2143: 语法错误: 缺少“;”(在“{”的前面) [G:\tgit\eth\cryptozombiestrial\ora
cle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(143,1): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) [G:\tgit\eth\cryptozombiestrial\
oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\validation.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
\src\validation.cc(148,1): warning C4312: “类型强制转换”: 从“int”转换到更大的“node::addon_register_func” [G:\
tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\bu
ild\validation.vcxproj]

> [email protected] install G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
> node-gyp rebuild


G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt>if not defined npm_config_node_gyp (node "C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Warning: Missing input files:
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\..\scrypt\win\include\config.h
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“-m”开关。
  Copying scrypt/win/include/config.h to scrypt/scrypt-1.2.0/config.h
  系统找不到指定的文件。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): warning MSB8064: 项“..\scrypt\win\include\config.h”的自定义生成成功,但指定的依赖项“g:\tgit\eth\cryptozombiestrial\or
acle\ethpriceoracle\node_modules\scrypt\scrypt\win\include\config.h”不存在。这可能会导致增量生成无法正常工作。 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\copied_files.vcxproj]
  win_delay_load_hook.cc
  copied_files.vcxproj -> G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\Release\\copied_files.node
  memlimit.c
  keyderivation.c
  pickparams.c   
  hash.c
  win_delay_load_hook.cc
  scrypt_wrapper.vcxproj -> G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\Release\\scrypt_wrapper.lib
  crypto_scrypt.c
  crypto_scrypt_smix.c
  warnp.c
  sha256.c
  insecure_memzero.c
  scryptenc_cpuperf.c
  mman.c
  gettimeofday.c
  win_delay_load_hook.cc
  scrypt_lib.vcxproj -> G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\Release\\scrypt_lib.lib
  scrypt_common.cc
  scrypt_params_async.cc
  scrypt_params_sync.cc
  scrypt_kdf_async.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.c
c) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.c
c) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc
) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.c
c) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc
) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_async.h(53,15): warning C4996: 'Nan::Callback::Call': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G
:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc
) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_params_async.h(35,1): error C2660: “v8::Value::NumberValue”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_a
sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2704,39): message : 参见“v8::Value::NumberValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(25,47): error C2660: “v8::Value::NumberValue”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2704,39): message : 参见“v8::Value::NumberValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_params_async.h(36,1): error C2660: “v8::Value::NumberValue”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_a
sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2704,39): message : 参见“v8::Value::NumberValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(25,16): error C2737: “maxtime”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_mo
dules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_params_async.h(37,1): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_
async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPrice
Oracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(26,47): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_params_async.h(38,1): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_params_
async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPrice
Oracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(26,16): error C2737: “maxmem”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_mod
ules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_async.cc(23,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node
_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(27,50): error C2660: “v8::Value::NumberValue”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2704,39): message : 参见“v8::Value::NumberValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_async.cc(24,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node
_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(27,16): error C2737: “maxmemfrac”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node
_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_async.cc(25,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node
_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(28,50): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_params_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceO
racle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_async.cc(32,11): warning C4996: 'Nan::Callback::Call': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle
\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(28,16): error C2737: “osfreemem”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_
modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
  scrypt_kdf_sync.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(46,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_
modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(47,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_
modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_async.h(53,15): warning C4996: 'Nan::Callback::Call': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\t
git\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_params_sync.cc(48,6): warning C4996: 'v8::Object::Set': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_
modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(36,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.c
c) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(36,13): error C2512: “NodeScrypt::Params::Params”: 没有合适的默认构造函数可用 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_
async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(40,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\t
git\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(41,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\t
git\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(42,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\t
git\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf_async.h(45,90): warning C4996: 'v8::Object::Get': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_async.cc) [G:\t
git\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_kdf_async.cc(25,62): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_kdf_async.cc(28,13): warning C4996: 'Nan::Callback::Call': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\no
de_modules\scrypt\build\scrypt.vcxproj]
  scrypt_kdf-verify_sync.cc
  scrypt_kdf-verify_async.cc
  scrypt_hash_sync.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_asy
nc.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPr
iceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_asy
nc.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPr
iceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracl
e\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_asy
nc.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPr
iceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracl
e\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_async.h(53,15): warning C4996: 'Nan::Callback::Call': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_async.cc
) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracl
e\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf-verify_async.h(40,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_a
sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_kdf_sync.cc(29,57): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracl
e\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_kdf-verify_async.h(41,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_a
sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_kdf_sync.cc(29,30): error C2737: “params”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_module
s\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_kdf-verify_async.cc(30,11): warning C4996: 'Nan::Callback::Call': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_syn
c.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPri
ceOracle\node_modules\scrypt\build\scrypt.vcxproj]
  scrypt_hash_async.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_syn
c.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPri
ceOracle\node_modules\scrypt\build\scrypt.vcxproj]
  scrypt_node.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_syn
c.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_kdf-verify_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPri
ceOracle\node_modules\scrypt\build\scrypt.vcxproj]
  win_delay_load_hook.cc
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc)
[G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_sync.cc(24,55): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOrac
le\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_sync.cc(24,28): error C2737: “params”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modul
es\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_sync.cc(25,50): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_sync.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_sync.cc(25,16): error C2737: “hash_size”: 必须初始化 const 对象 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_mo
dules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(39,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc)
 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(40,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc)
 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_common.h(41,1): error C2660: “v8::Value::Uint32Value”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc)
 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2707,41): message : 参见“v8::Value::Uint32Value”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_async.h(53,15): warning C4996: 'Nan::Callback::Call': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:\
tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(36,1): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async
.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(37,1): error C2660: “v8::Value::IntegerValue”: 函数不接受 0 个参数 (编译源文件 ..\src\node-boilerplate\scrypt_hash_asyn
c.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(2705,40): message : 参见“v8::Value::IntegerValue”的声明 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOr
acle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(36,13): error C2512: “NodeScrypt::Params::Params”: 没有合适的默认构造函数可用 (编译源文件 ..\src\node-boilerplate\scrypt_has
h_async.cc) [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(42,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:
\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(43,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:
\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(44,28): warning C4996: 'v8::Object::Set': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:
\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\inc\scrypt_hash_async.h(47,85): warning C4996: 'v8::Object::Get': 被声明为已否决 (编译源文件 ..\src\node-boilerplate\scrypt_hash_async.cc) [G:
\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_async.cc(49,58): error C2661: “v8::Value::ToObject”: 没有重载函数接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOra
cle\node_modules\scrypt\build\scrypt.vcxproj]
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt\src\node-boilerplate\scrypt_hash_async.cc(52,11): warning C4996: 'Nan::Callback::Call': 被声明为已否决 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\n
ode_modules\scrypt\build\scrypt.vcxproj]
gyp ERR! build error 
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:314:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)
gyp ERR! System Windows_NT 10.0.19043
gyp ERR! command "C:\\Users\\admin\\AppData\\Local\\nvs\\default\\node.exe" "C:\\Users\\admin\\AppData\\Local\\nvs\\node\\12.22.12\\x64\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
gyp ERR! node -v v12.22.12
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2022-06-02T03_15_17_356Z-debug.log

显然网络问题已经好了,现在是编译[email protected]时出了问题。如果你直接去百度,网上会有一堆文章说了好几种根本不起作用的解决方法。原因是大部分人根本没去深究报错的原因,只是随便乱试一通。本着认真负责的态度,我们要从错误日志中自己找寻原因。
编译失败肯定是因为本地环境和项目方的不一致。看错误信息中有基础关键信息:

  • gyp ERR! stack Error:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exefailed with exit code: 1 - 我的机器上安装的是vs2019,编译失败了。
  • gyp ERR! node -v v12.22.12 - 没错,这是我正在使用的node版本。
  • gyp ERR! node-gyp -v v5.1.0 - mmm...网上会有一堆人让你装node-gyp,然而这句话正是说了使用了5.1.0的node-gyp,说明我本来就有安装。以上vs、Node、node-gyp的版本差异都可能导致编译失败。接下来逐个看一下,先看看node-gyp。
G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle>node-gyp -v
'node-gyp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

没理由呀~我全局(--global)安装了node-gyp,回顾下上一篇文章,我用的nvs管理多个版本的Node,默认目录里可以看到使用npm i --global node-gyp安装的node-gyp

image.png

手动查看其package.json,是最新(@latest)的node-gyp v9.0.0没错~那为什么日志里会使用v5.1.0的版本呢?检查nvs安装目录(%LocalAppData%\nvs\node\12.22.12\x64\node_modules\npm\node_modules,12.22.12是我默认使用的Node版本号)底下,还存在着一个node-gyp,查看其package.json,发现正是5.1.0!说明npm安装包时优先使用的是这里的版本。
既然是安装scrypt出问题,那就去其网站上找找有没有帮助信息。
image.png

在Installation Instructions一节中,点击上图红框中的链接,下图红框中分别关于升级node-gyp到v9.x.x和Visual Studio版本的问题,也许对我们有用。
image.png

根据node-gyp的指引,升级npm内置的node-gyp到最新版本:

C:\Users\admin\AppData\Local\nvs\node\12.22.12\x64\node_modules\npm\node_modules\npm-lifecycle>npm i node-gyp@latest
+ [email protected]
added 105 packages from 43 contributors in 9.024s

45 packages are looking for funding
  run `npm fund` for details

注意,具体目录参考指引。
再次安装loom-js,依然报错,说明和node-gyp版本无关(别总想轻而易举地解决问题,尽管这是成本最低的一个尝试方向)。vs2019是不是不兼容呢?毕竟看记录scrypto已经是6年前最后一次更新了,但是看错误信息,大量是关于v8的,且指向C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h,感觉Node版本差异导致编译失败更合理一些。比如下述错误:

G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\src\bufferutil.cc(34,1
): error C2660: “v8::FunctionTemplate::GetFunction”: 函数不接受 0 个参数 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\
node_modules\loom-js\node_modules\websocket\build\bufferutil.vcxproj]
C:\Users\admin\AppData\Local\node-gyp\Cache\12.22.12\include\node\v8.h(6126,46): message : 参见“v8::FunctionTemplate::Get
Function”的声明 [G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket\build\bu
fferutil.vcxproj]

翻了一下node-scrypt的github,果不其然,Node12以上版本会编译失败:
https://github.com/barrysteyn/node-scrypt/pull/197
因为Node12对v8库做了大量升级,很多接口被drop了,可查看此处讨论:https://stackoverflow.com/questions/58178620/v8-do-not-support-v8valuetonumber-anymore
正如scrypt作者声称,新版本的Node已经内置了scrypt作为其核心库,他这个项目已经弃坑了。对我而言,最简单的就是用Node11,正好我装了11和12都装了,切换下Node版本:

G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle>nvs list
>#node/12.22.12/x64 (Erbium)
  node/11.15.0/x64

G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle>nvs link 11.15.0
%LOCALAPPDATA%\nvs\default -> %LOCALAPPDATA%\nvs\node\11.15.0\x64

重新安装loom-js:

G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle>npm i loom-js -S
npm WARN deprecated [email protected]: New package name format for new versions: @ethereumjs/tx. Please update.
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated [email protected]: ⚠️  WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar
npm WARN deprecated [email protected]: Use mz or fs-extra^3.0 with Promise Support
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

> [email protected] preinstall G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
> node node-scrypt-preinstall.js


> [email protected] install G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)


G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\loom-js\node_modules\websocket>if not defined npm_config_node_gyp (node "C:\Users\admin\AppData\Local\nvs\node\11.15.0\x64\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\admin\AppData\Local\nvs\node\11.15.0\x64\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )

> [email protected] install G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
> node-gyp rebuild


G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt>if not defined npm_config_node_gyp (node "C:\Users\admin\AppData\Local\nvs\node\11.15.0\x64\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\admin\AppData\Local\nvs\node\11.15.0\x64\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Command failed: D:\Users\admin\AppData\Local\Programs\Python\Python310\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:299:12)
gyp ERR! stack     at ChildProcess.emit (events.js:193:13)
gyp ERR! stack     at maybeClose (internal/child_process.js:999:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:266:5)
gyp ERR! System Windows_NT 10.0.19043
gyp ERR! command "C:\\Users\\admin\\AppData\\Local\\nvs\\default\\node.exe" "C:\\Users\\admin\\AppData\\Local\\nvs\\node\\11.15.0\\x64\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd G:\tgit\eth\cryptozombiestrial\oracle\EthPriceOracle\node_modules\scrypt
gyp ERR! node -v v11.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN [email protected] requires a peer of ajv@^8.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2022-06-02T08_21_32_866Z-debug.log

这次报错是python脚本,很明显这个脚本是python2,而我安装的是python3:

gyp ERR! stack Error: Command failed: D:\Users\admin\AppData\Local\Programs\Python\Python310\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

安装了python2(同时安装python2和3网上介绍一堆)之后,重新安装loom-js,成功了!

结论

安装loom-js,由于其依赖于node-scrypt,而node-scrypt不支持Node12,因此需要使用Node11+python2来安装。

你可能感兴趣的:(npm install loom-js 安装报错探源)