node.js - Electron 和 couchbase:该模块是针对不同的 node.js 版本编译的(win)
问题描述
问题:
我正在尝试在电子应用程序中使用 couchbase,但是一旦我包含了 couchbase 模块,就无法运行电子应用程序。如何使用电子沙发底座?
错误信息:
C:\dev\app>npm start
> eej@1.0.0 start C:\dev\app
> electron .
App threw an error during load
Error: The module '\\?\C:\dev\app\node_modules\couchbase\build\Release\couchbase_impl.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 76. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at process.func (electron/js2c/asar.js:140:31)
at process.func [as dlopen] (electron/js2c/asar.js:140:31)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1016:18)
at Object.func (electron/js2c/asar.js:140:31)
at Object.func [as .node] (electron/js2c/asar.js:140:31)
at Module.load (internal/modules/cjs/loader.js:816:32)
at Module._load (internal/modules/cjs/loader.js:728:14)
at Module._load (electron/js2c/asar.js:717:26)
at Function.Module._load (electron/js2c/asar.js:717:26)
at Module.require (internal/modules/cjs/loader.js:853:19)
我的main.js
文件开始是这样的:
const { app, BrowserWindow } = require('electron')
var couchbase = require('couchbase');
function createWindow () {
我已经尝试过的:
- 删除
node_modules
目录和锁定文件并通过 npm i 重新安装 - 安装和运行
electron-rebuild
- 运行时使用
--update-binary
开关npm i
- 将 npm 版本降级为 LTS 版本
背景资料:
节点版本:
PS C:\dev\app> node --version
v12.16.1
PS C:\dev\app> electron --version
v8.0.1
电子使用节点12.13.0
:
We are using node 12.13.0, Chrome 80.0.3987.86, and Electron 8.0.1.
电子节点和独立节点的版本不同。不知道这样行不行?!
我的package.json
文件内容:
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"devDependencies": {
"couchbase": "^3.0.0",
"electron": "^8.0.1",
"electron-rebuild": "^1.10.0"
},
"dependencies": {
"node-gyp": "^6.1.0"
}
}
类似的问题:
- 针对不同节点版本编译的 Couchbase 节点:添加评论后,我发现这是一个特定于 unix 的问题。
- Node - 使用 NODE_MODULE_VERSION 51 针对不同的 Node.js 版本编译:我浏览了几乎所有的建议,但似乎没有一个对我有用。
解决方案
推荐阅读
- android - Android:在特定日期或日期重复的定期工作管理器
- python - PySpark 结构体排序数组
- python - 创建一个没有 appendleft 方法的自定义 deque 类,继承自 collections.deque
- python - 将火炬模型导出为 onnx 格式时出现问题
- r - 使用固定效应模型的具有序数因变量的面板回归
- laravel - 如何查看 Laravel Livewire 的版本
- postgresql - 在 Allure TestOps 中清理数据
- python - 将 tkinter 画布旋转特定角度
- reactjs - 如何使用更改的 HOST 文件打开远程反应应用程序?
- json - 如何将导入的 json 表格视图保存到 json 文件中