npm установка sqlite3 - ошибка gyp: невозможно получить сертификат локального эмитента - PullRequest
0 голосов
/ 19 апреля 2020

Я работаю над чистой Windows 10 установкой. При попытке запустить npm install sqlite3 из myproject path выдается следующая ошибка:

gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: unable to get local issuer certificate
gyp ERR! stack     at TLSSocket.onConnectSecure (_tls_wrap.js:1474:34)
gyp ERR! stack     at TLSSocket.emit (events.js:310:20)
gyp ERR! stack     at TLSSocket._finishInit (_tls_wrap.js:917:8)
gyp ERR! stack     at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:687:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\\dev\\source\\myproject\\node_modules\\sqlite3\\lib\\binding\\node-v72-win32-x64\\node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=C:\\dev\\source\\myproject\\node_modules\\sqlite3\\lib\\binding\\node-v72-win32-x64" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72" "--python=C:\\Python27" "--msvs_version=2017"
gyp ERR! cwd C:\dev\source\myproject\node_modules\sqlite3
gyp ERR! node -v v12.16.2
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=C:\dev\source\myproject\node_modules\sqlite3\lib\binding\node-v72-win32-x64\node_sqlite3.node --module_name=node_sqlite3 --module_path=C:\dev\source\myproject\node_modules\sqlite3\lib\binding\node-v72-win32-x64 --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72 --python=C:\Python27 --msvs_version=2017' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\dev\source\myproject\node_modules\sqlite3\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:310:20)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
node-pre-gyp ERR! System Windows_NT 10.0.17134
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\dev\\source\\myproject\\node_modules\\sqlite3\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\dev\source\myproject\node_modules\sqlite3
node-pre-gyp ERR! node -v v12.16.2
node-pre-gyp ERR! node-pre-gyp -v v0.11.0
node-pre-gyp ERR! not ok

Я уже пробовал какое-то решение, например strict-ssl=false, но не нашел решения, которое будет работать для меня и до сих пор не понимаю, что является root причиной этой ошибки.

Я также попытался установить предыдущую версию на sqlite3 и получил:

node-pre-gyp http GET https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.1/node-v72-win32-x64.tar.gz
node-pre-gyp http unable to get local issuer certificate (falling back to source compile with node-gyp)

Поэтому я попытался сделать прямой GET-запрос на это, изменив версию с v3.1.1 на v4.1.1 и обнаружив следующее:

При выполнении запроса с SSL certificate verification равен on, запрос завершается неудачно, а когда off успешно и загружает файл.

Мой вывод: есть проблема с проверкой сертификата в этом пакете, и почтальон знает, как его обработать, вопрос в том, как обработать его на npm, в частности при работе на windows.

...