在 Electron 应用程序中安装 oracledb 时出现证书错误
Certificate error was raised when installing oracledb in Electron app
我是 运行 Windows 7,使用 oracledb v1.10.0、electron-prebuilt v1.2.2、electron-rebuild v1.1.5、node v0.12.7 和 npm v2.11.3。当我执行 node_modules/.bin/electron-rebuild -f -w oracledb
时,我收到以下错误:
gyp ERR! stack Error: certificate not trusted
gyp ERR! stack at Error (native)
gyp ERR! stack at TLSSocket.<anonymous> (_tls_wrap.js:929:36)
gyp ERR! stack at TLSSocket.emit (events.js:104:17)
gyp ERR! stack at TLSSocket._finishInit (_tls_wrap.js:460:8)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "H:\electron-quick-start\node_modules\electron-rebuild\node_modules\npm\node_modules\node
-gyp\bin\node-gyp.js" "install" "--target=1.2.7" "--arch=x64" "--dist-url=https://gh-contractor-zcbenz.s3.amazonaws.co
m/atom-shell/dist"
gyp ERR! cwd H:\electron-quick-start
gyp ERR! node -v v0.12.7
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
如何让这个命令成功执行?
好像是Module没有自行注册。在 Windows 上,'node' 实际上是一个调用 iojs 的批处理文件,而本机模块不喜欢那样。您还需要将 iojs 可执行文件复制到 'node' 以满足本机模块。
现在,我不清楚你到底在做什么。但是如果你想在 Electron 中使用原生模块,你需要针对 Electron includes/header 构建你的原生代码,而不是那些 iojs。您可以查看此命令语法示例:
node-gyp rebuild --target=0.22.3 --arch=ia32 --target_platform=win --dist-url=https://atom.io/download/atom-shell
我收到的证书错误是由于在 Windows 下的公司防火墙后面。为了解决这个问题,我从 https 中删除了 s,因此 dist-url 值变成了 http://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist。我得到的另一个错误是(如@Thennarasan 所提到的)"Module did not self-register" 并且为了解决这个问题我调用了以下命令并且它起作用了:
PS H:\electron-app> cd node_modules\oracledb
PS H:\electron-app\node_modules\oracledb> node-gyp rebuild --target=1.2.8 --arch=x64 --target_platform=win --dist-url=http://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist --msvs_version=2013
PS H:\electron-app> cd ..\..
我从这个 Github 问题 https://github.com/electron/electron/issues/1529 中得到了帮助。
我是 运行 Windows 7,使用 oracledb v1.10.0、electron-prebuilt v1.2.2、electron-rebuild v1.1.5、node v0.12.7 和 npm v2.11.3。当我执行 node_modules/.bin/electron-rebuild -f -w oracledb
时,我收到以下错误:
gyp ERR! stack Error: certificate not trusted
gyp ERR! stack at Error (native)
gyp ERR! stack at TLSSocket.<anonymous> (_tls_wrap.js:929:36)
gyp ERR! stack at TLSSocket.emit (events.js:104:17)
gyp ERR! stack at TLSSocket._finishInit (_tls_wrap.js:460:8)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "H:\electron-quick-start\node_modules\electron-rebuild\node_modules\npm\node_modules\node
-gyp\bin\node-gyp.js" "install" "--target=1.2.7" "--arch=x64" "--dist-url=https://gh-contractor-zcbenz.s3.amazonaws.co
m/atom-shell/dist"
gyp ERR! cwd H:\electron-quick-start
gyp ERR! node -v v0.12.7
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
如何让这个命令成功执行?
好像是Module没有自行注册。在 Windows 上,'node' 实际上是一个调用 iojs 的批处理文件,而本机模块不喜欢那样。您还需要将 iojs 可执行文件复制到 'node' 以满足本机模块。
现在,我不清楚你到底在做什么。但是如果你想在 Electron 中使用原生模块,你需要针对 Electron includes/header 构建你的原生代码,而不是那些 iojs。您可以查看此命令语法示例:
node-gyp rebuild --target=0.22.3 --arch=ia32 --target_platform=win --dist-url=https://atom.io/download/atom-shell
我收到的证书错误是由于在 Windows 下的公司防火墙后面。为了解决这个问题,我从 https 中删除了 s,因此 dist-url 值变成了 http://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist。我得到的另一个错误是(如@Thennarasan 所提到的)"Module did not self-register" 并且为了解决这个问题我调用了以下命令并且它起作用了:
PS H:\electron-app> cd node_modules\oracledb
PS H:\electron-app\node_modules\oracledb> node-gyp rebuild --target=1.2.8 --arch=x64 --target_platform=win --dist-url=http://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist --msvs_version=2013
PS H:\electron-app> cd ..\..
我从这个 Github 问题 https://github.com/electron/electron/issues/1529 中得到了帮助。