故障排除:针对不同的节点版本编译
#node #troubleshooting

症状

运行一个节点项目,其依赖性更好sqlite3收到以下错误消息:

Error: The module '... /node_modules/better-sqlite3/build/Release/better_sqlite3.node'
  was compiled against a different Node.js version using
  NODE_MODULE_VERSION 83. This version of Node.js requires
  NODE_MODULE_VERSION 93. Please try re-compiling or re-installing
  the module (for instance, using `npm rebuild` or `npm install`).

  ' the module (for instance, using `npm rebuild` or `npm install`).
  ' bindings (node_modules/bindings/bindings.js:112:48)

原因

错误消息本身包含足够的详细信息,还显示了原因和解决方案。

简而言之:用于编译安装的better_sqlite3的节点版本与当前使用的节点版本不同,因此它要求将其重新编译为当前版本。

解决方案

  • npm i -D electron-rebuild.
  • 删除node_modules目录。
  • package.json中添加scripts
    "rebuild": "electron-rebuild -f -w better-sqlit3",
  • npm i
  • npm rebuild

参考链接: