之前在 ELectron 中需要使用 SQLite,但是在 import 之后却显示错误讯息:

Error: Cannot find module

参考各种资料后发现了原因:

https://github.com/mapbox/node-sqlite3#installing
 https://github.com/electron/electron/issues/1182
 https://github.com/electron/electron-rebuild/issues/33

步骤

  • 安装 sqlite3:
$ npm install --save-dev sqlite3
  • 全局安装 nw-gyp 模块:
$ npm install nw-gyp -g
  • 检查 Node 版本:
$ npm config get user-agent
  • 检查 Electron 版本:
$ ./node_modules/.bin/electron -v
  • 重编译 sqlite3 模块:
  • 检查依赖:
  • $ cd node_modules/sqlite3 && npm run prepublish
  • 配置:
  • $ node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-darwin-x64
  • 编译:
  • $ node-gyp rebuild --target=1.4.15 --arch=x64 --target_platform=darwin --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.4-darwin-x64
  • 参数解释
  • --target Electron 版本
  • --arch CPU 架构
  • --target_platform 操作系统平台
  • --module_path Electron 查找的模块路径

参考

在 Electron 裡使用 node_sqlite3