莫一哲

折磨我的老腰啊,可是这个小家伙依然没有出来的意思 2018-09-13 19:40 by fifsky

nwjs下编译sqlite3

由于网上查找的资料基本不对,特别是最后还需要手动修改build的文件夹名称,这个也是想当然的解决方法,如果使用原生node命令调试会始终报Error: Module version mismatch. 


OK,具体步骤如下

1、npm install nw-gyp -g

2、git clone https://github.com/mapbox/node-sqlite3.git 到node_module/sqlite3目录下,你也可以不clone直接npm install sqlite3,但是我测试失败,所以只好先下载

3、cd node_module/sqlite3

4、npm install --build-from-source --runtime=node-webkit --target_arch=x64 --target=0.12.3   最后的--target是你的nwjs的版本

build成功之后会生成node_module/sqlite3/lib/binding/node-webkit-v0.12.3-darwin-x64/node_sqlite3.node文件,其实这个时候就已经成功了


但是如果你npm test是通不过的,因为npm test是使用node来执行,而这个模块必须在nwjs里面执行,因此会报module找不到的错误,于是网上的答案就是想当然的把文件目录修改为node-v11-darwin-ia32之类的,这是不对的,目录不需要修改,直接在nwjs代码里面测试sqlite就可以通过了


PS,如果npm install 依旧不能安装成功,可以试试先安装npm install node-pre-gyp -g模块,然后在目录下手动编译


node-pre-gyp rebuild --runtime=node-webkit --target=0.12.3

  • 1
返回顶部