electron+sqlite3的一起使用

在用react,electron,創建的程序時可以運行的,當添加sqlite3時,編譯就過不去了,因爲sqlite3是C++寫的,所以在使用的時候我們不能直接用,需要編譯下才可以使用,但是這個編譯過程有些難走。

首先下載了electron-rebuild

npm install --save-dev electron-rebuild

然後,下載了sqlite3

npm install --save sqlite3

隨後修改了package.json: //在scripts命令中添加此條

"scripts": {
    "rebuild": "electron-rebuild -f -w sqlite3" 
  },

然後運行編譯:

npm run rebuild

遇到了如下的錯誤:

zoe@DESKTOP-MEP5D54 MINGW64 /e/aPritice/appelectronnfc
$ npm run rebuild

> [email protected] rebuild E:\aPritice\appelectronnfc
> electron-rebuild -f -w sqlite3

- Searching dependency tree
× Rebuild Failed

An unhandled error occurred inside electron-rebuild
�ڴ˽��������һ������һ����Ŀ����Ҫ���ò������ɣ������ӡ�/m�����ء�
  buffertools.cc
  win_delay_load_hook.cc
c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(4458): warning C4996: 'v8::WasmModuleObject::SerializedModule': ������Ϊ�ѷ�� (����Դ�ļ� ..\buffertools.cc) [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(4380): note: �μ���v8::WasmModuleObject::SerializedModule�������� (����Դ�ļ� ..\buffertools.cc)
c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10172): warning C4996: 'v8::Value::ToBoolean': ������Ϊ�ѷ�� (����Դ�ļ� ..\buffertools.cc) [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2387): note: �μ���v8::Value::ToBoolean�������� (����Դ�ļ� ..\buffertools.cc)
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(32): error C2039: ��Handle��: ���ǡ�v8���ij�Ա [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8-platform.h(16): note: ���v8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(32): error C2873: ��Handle��: ���Ų������� using ������ [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(256): warning C4996: 'v8::Value::Int32Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2446): note: ���v8::Value::Int32Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(261): warning C4996: 'v8::String::Utf8Value::Utf8Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2893): note: ���v8::String::Utf8Value::Utf8Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(266): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(272): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(329): warning C4996: 'v8::Value::Int32Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2446): note: ���v8::Value::Int32Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(363): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(381): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(419): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(449): warning C4996: 'v8::String::Utf8Length': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2556): note: ���v8::String::Utf8Length��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(452): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(460): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(470): warning C4996: 'v8::String::Utf8Value::Utf8Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2893): note: ���v8::String::Utf8Value::Utf8Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(475): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(482): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2065: ��Handle��: δ�����ı�ʶ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2275: ��v8::Object��: ����������������ʽ�Ƿ� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(3257): note: ���v8::Object��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2065: ��target��: δ�����ı�ʶ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2182: ��RegisterModule��: �Ƿ�ʹ�á�void������ [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2448: ��`anonymous-namespace'::RegisterModule��: ������ʽ��ʼֵ�趨�����ƺ������� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(506): warning C4312: ������ǿ��ת����: �ӡ�int��ת��������ġ�node::addon_register_func�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (E:\aPritice\appelectronnfc\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\aPritice\\appelectronnfc\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=5.0.1" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source"
gyp ERR! cwd E:\aPritice\appelectronnfc\node_modules\buffertools
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

Failed with exit code: 1

Error: �ڴ˽��������һ������һ����Ŀ����Ҫ���ò������ɣ������ӡ�/m�����ء�
  buffertools.cc
  win_delay_load_hook.cc
c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(4458): warning C4996: 'v8::WasmModuleObject::SerializedModule': ������Ϊ�ѷ�� (����Դ�ļ� ..\buffertools.cc) [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(4380): note: �μ���v8::WasmModuleObject::SerializedModule�������� (����Դ�ļ� ..\buffertools.cc)
c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10172): warning C4996: 'v8::Value::ToBoolean': ������Ϊ�ѷ�� (����Դ�ļ� ..\buffertools.cc) [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2387): note: �μ���v8::Value::ToBoolean�������� (����Դ�ļ� ..\buffertools.cc)
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(32): error C2039: ��Handle��: ���ǡ�v8���ij�Ա [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8-platform.h(16): note: ���v8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(32): error C2873: ��Handle��: ���Ų������� using ������ [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(256): warning C4996: 'v8::Value::Int32Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2446): note: ���v8::Value::Int32Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(261): warning C4996: 'v8::String::Utf8Value::Utf8Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2893): note: ���v8::String::Utf8Value::Utf8Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(266): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(272): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(329): warning C4996: 'v8::Value::Int32Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2446): note: ���v8::Value::Int32Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(363): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(381): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(419): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(449): warning C4996: 'v8::String::Utf8Length': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2556): note: ���v8::String::Utf8Length��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(452): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(460): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(470): warning C4996: 'v8::String::Utf8Value::Utf8Value': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2893): note: ���v8::String::Utf8Value::Utf8Value��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(475): warning C4996: 'v8::Value::ToObject': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(10183): note: ���v8::Value::ToObject��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(482): warning C4996: 'v8::String::NewFromUtf8': ������Ϊ�ѷ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(2785): note: ���v8::String::NewFromUtf8��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2065: ��Handle��: δ�����ı�ʶ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2275: ��v8::Object��: ����������������ʽ�Ƿ� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
  c:\users\zoe\.electron-gyp\5.0.1\include\node\v8.h(3257): note: ���v8::Object��������
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2065: ��target��: δ�����ı�ʶ�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2182: ��RegisterModule��: �Ƿ�ʹ�á�void������ [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(492): error C2448: ��`anonymous-namespace'::RegisterModule��: ������ʽ��ʼֵ�趨�����ƺ������� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
e:\apritice\appelectronnfc\node_modules\buffertools\buffertools.cc(506): warning C4312: ������ǿ��ת����: �ӡ�int��ת��������ġ�node::addon_register_func�� [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (E:\aPritice\appelectronnfc\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\aPritice\\appelectronnfc\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=5.0.1" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source"
gyp ERR! cwd E:\aPritice\appelectronnfc\node_modules\buffertools
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

Failed with exit code: 1
    at SafeSubscriber._error (E:\aPritice\appelectronnfc\node_modules\spawn-rx\lib\src\index.js:267:84)
    at SafeSubscriber.__tryOrUnsub (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:205:16)
    at SafeSubscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:156:26)
    at Subscriber._error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:92:26)
    at Subscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:72:18)
    at MapSubscriber.Subscriber._error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:92:26)
    at MapSubscriber.Subscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:72:18)
    at SafeSubscriber._next (E:\aPritice\appelectronnfc\node_modules\spawn-rx\lib\src\index.js:242:65)
    at SafeSubscriber.__tryOrUnsub (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:205:16)
    at SafeSubscriber.next (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:143:22)
npm ERR! code ELIFECYCLE
npm ERR! errno 4294967295
npm ERR! [email protected] rebuild: `electron-rebuild -f -w sqlite3`
npm ERR! Exit status 4294967295
npm ERR!
npm ERR! Failed at the [email protected] rebuild 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\zoe\AppData\Roaming\npm-cache\_logs\2019-05-08T06_13_49_823Z-debug.log

編譯失敗了,重新找方法,繼續:
看了蘇南大叔的文章:
使用cnpm的一條命令,進行,我這本身沒有cnpm ,所以先下載(-g是全局下載,我是下了局部的,所以下一條命令,我使用的npx cnpm …)

npm install -g cnpm --registry=https://registry.npm.taobao.org

下載完,可以 cnpm -v 看下cnpm的版本,
然後執行這條命令試下:

cnpm install sqlite3@latest --build-from-source --runtime=electron --target=1.7.9 --dist-url=https://atom.io/download/electron --save

下載成功
隨後我執行了npm run rebuild
得到了rebuild報錯
cnpm好像不行,我缺包,刪除sqlite3

npm uninstall sqlite3 --save

重新用npm 試下:
先換下淘寶鏡像地址:

npm config set registry http://registry.npm.taobao.org

然後輸入命令重新下載
–target=後跟的是你的electron的版本,你可使用electron -v查看

npm install sqlite3 --build-from-source --runtime=electron --target=4.0.3 --dist-url=https://atom.io/download/electron --save-dev

下載完,運行:npm run rebuild
但是得到的結果
編譯報錯
刪除包 rm -rf node_modules/
重新下載:npm install
結果不理想…
重新編譯,又回到了文章的起點報錯…
如果你不想看到亂碼的提示,可以嘗試這個:
可以把chcp 65001作爲你npm命令的一部分,也許是個可行的解決方案。就可以看到熟悉的漢字了

 "rebuild": "chcp 65001 && electron-rebuild -f -w sqlite3"

報錯
重新下載node-gyp試試
先清下緩存:

npm cache clean -f

重新下載

npm uninstall node-gyp -g
npm uninstall node-gyp
npm install node-gyp -g

npx cnpm install sqlite3@latest --build-from-source --runtime=electron --target=4.0.3 --dist-url=https://atom.io/download/electron --save

下載完成

$ npx cnpm install sqlite3@latest --build-from-source --runtime=electron --target=4.0.3 --dist-url=https://atom.io/download/electron --save
√ Installed 1 packages
√ Linked 110 latest versions
[1/1] scripts.install sqlite3@latest run "node-pre-gyp install --fallback-to-build", root: "E:\\aPritice\\appelectronnfc\\node_modules\\[email protected]@sqlite3"
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp http GET https://cdn.npm.taobao.org/dist/sqlite3/v4.0.7/electron-v4.0-win32-x64.tar.gz
node-pre-gyp http 404 https://cdn.npm.taobao.org/dist/sqlite3/v4.0.7/electron-v4.0-win32-x64.tar.gz
node-pre-gyp WARN Tried to download(404): https://cdn.npm.taobao.org/dist/sqlite3/v4.0.7/electron-v4.0-win32-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (electron-v4.0 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp http 404 status code downloading tarball https://cdn.npm.taobao.org/dist/sqlite3/v4.0.7/electron-v4.0-win32-x64.tar.gz
在此解決方案中一次生成一個項目。若要啓用並行生成,請添加“/m”開關。
  unpack_sqlite_dep
  sqlite3.c
  win_delay_load_hook.cc
  sqlite3.vcxproj -> E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\\sqlite3.lib
  backup.cc
  database.cc
  node_sqlite3.cc
  statement.cc
..\src\statement.cc(103): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\statement.cc(161): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(347): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(412): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(416): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(483): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(556): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(564): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(680): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(694): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(743): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(837): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(873): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\statement.cc(887): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\backup.cc(105): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\backup.cc(119): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\database.cc(49): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\backup.cc(167): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(63): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

..\src\backup.cc(168): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\backup.cc(169): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(92): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明..\src\backup.cc(170): warning C4996: 'Nan::ForceSet': 被聲明爲已否決

..\src\database.cc(96): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\backup.cc(236): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明..\src\database.cc(133): warning C4996: 'Nan::ForceSet': 被聲明爲已否決

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\backup.cc(301): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明..\src\database.cc(134): warning C4996: 'Nan::ForceSet': 被聲明爲已否決

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\backup.cc(336): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\database.cc(190): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\database.cc(194): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\node_sqlite3.cc(23): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(199): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

..\src\node_sqlite3.cc(24): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(273): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

..\src\node_sqlite3.cc(25): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(277): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

..\src\node_sqlite3.cc(26): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(282): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決

..\src\node_sqlite3.cc(27): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\database.cc(297): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\node_sqlite3.cc(28): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\database.cc(314): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\node_sqlite3.cc(29): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\statement.cc(74): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(30): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\statement.cc(153): note: 參見對正在編譯的函數 模板 實例化“void node_sqlite3::Statement::Error<node_sqlite3::Statement::PrepareBaton>(T *)”的引用
          with
          [
              T=node_sqlite3::Statement::PrepareBaton
          ]

..\src\node_sqlite3.cc(32): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\statement.cc(78): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(34): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\node_sqlite3.cc(36): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\database.cc(421): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明..\src\node_sqlite3.cc(37): warning C4996: 'Nan::ForceSet': 被聲明爲已否決

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(38): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(39): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(40): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(41): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(42): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\database.cc(462): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(43): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\node_sqlite3.cc(44): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(45): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(46): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\database.cc(507): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(47): warning C4996: 'Nan::ForceSet': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(48): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(49): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\database.cc(564): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\node_sqlite3.cc(50): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\node_sqlite3.cc(51): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明..\src\database.cc(568): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決
..\src\node_sqlite3.cc(52): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明..\src\node_sqlite3.cc(53): warning C4996: 'Nan::ForceSet': 被聲明爲已否決

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\database.cc(573): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\node_sqlite3.cc(54): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
..\src\node_sqlite3.cc(55): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\database.cc(603): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決..\src\node_sqlite3.cc(56): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明

..\src\node_sqlite3.cc(57): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明
..\src\node_sqlite3.cc(58): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\database.cc(666): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(59): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\node_sqlite3.cc(60): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
..\src\database.cc(670): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

..\src\node_sqlite3.cc(61): warning C4996: 'Nan::ForceSet': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\node_sqlite3.cc(62): warning C4996: 'Nan::ForceSet': 被聲明爲已否決..\src\database.cc(675): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  e:\apritice\appelectronnfc\node_modules\[email protected]@nan\nan_maybe_43_inl.h(130): note: 參見“Nan::ForceSet”的聲明

..\src\backup.cc(78): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]

  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
  ..\src\backup.cc(228): note: 參見對正在編譯的函數 模板 實例化“void node_sqlite3::Backup::Error<node_sqlite3::Backup::InitializeBaton>(T *)”的引用
          with
          [
              T=node_sqlite3::Backup::InitializeBaton
          ]
..\src\backup.cc(82): warning C4996: 'Nan::MakeCallback': 被聲明爲已否決 [E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\node_sqlite3.vcxproj]
  E:\aPritice\appelectronnfc\node_modules\[email protected]@nan\nan.h(959): note: 參見“Nan::MakeCallback”的聲明
  win_delay_load_hook.cc
    正在創建庫 E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\node_sqlite3.lib 和對象 E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\node_sqlite3.exp
  正在生成代碼
  All 4564 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  已完成代碼的生成
  node_sqlite3.vcxproj -> E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\\node_sqlite3.node
  node_sqlite3.vcxproj -> E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\node_sqlite3.pdb (Full PDB)
  Copying E:\aPritice\appelectronnfc\node_modules\[email protected]@sqlite3\build\Release\/node_sqlite3.node to E:/aPritice/appelectronnfc/node_modules/[email protected]@sqlite3/lib/binding/electron-v4.0-win32-x64\node_sqlite3.node
  已複製         1 個文件。
[1/1] scripts.install sqlite3@latest finished in 37s
√ Run 1 scripts
Recently updated (since 2019-05-03): 2 packages (detail see file E:\aPritice\appelectronnfc\node_modules\.recently_updates.txt)
√ All packages installed (118 packages installed from npm registry, used 54s(network 18s), speed 1.24MB/s, json 111(212.28kB), tarball 21.71MB)

重新編譯

$ npm run rebuild

> [email protected] rebuild E:\aPritice\appelectronnfc
> chcp 65001 && electron-rebuild -f -w sqlite3

Active code page: 65001
- Searching dependency tree
× Rebuild Failed

An unhandled error occurred inside electron-rebuild
在此解決方案中一次生成一個項目。若要啓用並行生成,請添加“/m”開關。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, please install v120 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
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 (E:\aPritice\appelectronnfc\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\aPritice\\appelectronnfc\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=5.0.1" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source"
gyp ERR! cwd E:\aPritice\appelectronnfc\node_modules\buffertools
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

Failed with exit code: 1

Error: 在此解決方案中一次生成一個項目。若要啓用並行生成,請添加“/m”開關。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, please install v120 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". [E:\aPritice\appelectronnfc\node_modules\buffertools\build\buffertools.vcxproj]
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 (E:\aPritice\appelectronnfc\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\aPritice\\appelectronnfc\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=5.0.1" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source"
gyp ERR! cwd E:\aPritice\appelectronnfc\node_modules\buffertools
gyp ERR! node -v v10.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

Failed with exit code: 1
    at SafeSubscriber._error (E:\aPritice\appelectronnfc\node_modules\spawn-rx\lib\src\index.js:267:84)
    at SafeSubscriber.__tryOrUnsub (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:205:16)
    at SafeSubscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:156:26)
    at Subscriber._error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:92:26)
    at Subscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:72:18)
    at MapSubscriber.Subscriber._error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:92:26)
    at MapSubscriber.Subscriber.error (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:72:18)
    at SafeSubscriber._next (E:\aPritice\appelectronnfc\node_modules\spawn-rx\lib\src\index.js:242:65)
    at SafeSubscriber.__tryOrUnsub (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:205:16)
    at SafeSubscriber.next (E:\aPritice\appelectronnfc\node_modules\rxjs\internal\Subscriber.js:143:22)
npm ERR! code ELIFECYCLE
npm ERR! errno 4294967295
npm ERR! [email protected] rebuild: `chcp 65001 && electron-rebuild -f -w sqlite3`
npm ERR! Exit status 4294967295
npm ERR!
npm ERR! Failed at the [email protected] rebuild 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\zoe\AppData\Roaming\npm-cache\_logs\2019-05-10T03_05_15_050Z-debug.log

出來的,暫且擱置吧,等頁面做完了在看這個
後有人告訴我,使用node-gyp進行編譯:
編譯步驟
保證你下安裝了 Python以及c++編譯環境,node-gyp 。
1.1:安裝 python2.7。python 若是有問題,如果之前安裝過多個版本,則必須 npm config set python “/path/python.exe”。必須爲2.7版本。
1.2:安裝 Visual Studio 2015 ,安裝過程中需要安裝c++相關,必須安裝。
1.3:安裝 windows-build-tools。 npm install windows-build-tools -g 。如果npm 不行,運行 cnpm install windows-build-tools -g。 windows build 錯誤時,需要重新安裝vs2015。
1.4:安裝 node-pre-gyp 和 node-gyp。 npm install node-pre-gyp -g npm install node-gyp -g。

npm uninstall node-gyp -g
npm uninstall node-gyp
npm install node-gyp -g

C++的編譯環境可運行一條命令:
我是手動下載了Visual stadio的工具,把C++的選了,安裝完成

npm install windows-build-tools -g 

第一步:
先在你的項目裏面安裝npm install sqlite3 -s。
成功之後,在你的node_modules 裏面會有一個sqlite3的文件。
裏面的這個文件:
node_modules/sqlite3/binding.gyp
就是我們需要編譯成electron模塊的配置文件。裏面有兩個變量:module_name、module_path 這個很重要需要我們編譯的時候傳入。

第二步:
cd到 sqlite3 目錄下:
運行:node-gyp rebuild --target=5.0.0 --arch=ia32 --target_platform=win32 --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/electron-v5.0-win32-ia32

上面參數:
target代表你的electron 版本號,默認你的node_modules/下的electron 版本 PS:我的版本是5.0.0。
arch代表你的node位數,PS:我的是32位,64位node寫x64。
module_path:這個參數
electron-v5.0-win32-ia32,這個名字需要注意:v5.0是electron版本,ia32 和 arch參數對應。

好,我們運行這條命令

編譯成功,會看到在splite3 裏面lib包下有:

這個就是我們需要的electron sqlit3 模塊;
測試一下:在main.js 添加sqlite3

運行測試一下:

測試成功!!!

參考網址:https://www.cnblogs.com/wyuan-yuan/p/10451156.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章