2

当我在我的 js 代码中需要“ref”模块并通过节点运行时,我得到了所需的输出。但是当我通过在 package.json 中提供必要的更改来通过电子运行相同的 js 代码时,它会说“找不到绑定文件..”

这是我的 package.json 文件

{
"name": "firstapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron .",
    "package": "electron-packager . myapp --platform=win32 --arch=ia32 --version=1.0.0 --overwrite"
},
"author": "",
"license": "ISC",
"devDependencies": {
    "electron": "^1.4.8",
    "electron-prebuilt": "^1.4.8",
    "electron-rebuild": "^1.4.0",
    "ffi": "^2.2.0",
    "node-gyp": "^3.4.0",
    "reach": "^1.0.0",
    "ref": "^1.3.3"
},
"dependencies": {
    "ffi": "^2.2.0",
    "ref": "^1.3.3"
}
}

这是我的 index.js 文件

const electron = require('electron');
const ref = require('ref');
const app = electron.app
const BrowserWindow = electron.BrowserWindow
let mainWindow
const createWindow = () => {
mainWindow = new BrowserWindow({ name: "ishwar", width: 800, height: 600, visible: true, toolbar: false });
mainWindow.loadURL(__dirname + '/index.html');

mainWindow.webContents.openDevTools()

mainWindow.on('closed', () => {
    mainWindow = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
app.quit()
})
app.on('activate', () => {
if (mainWindow === null) {
    createWindow()
}
})

当我启动项目“npm start”而不需要“ref”时,我没有收到任何错误。但是当我使用 ref 时,它会引发错误。

PS主要要求是“ffi”模块,我已经完成了运行“ffi”所需的必要更改。“ffi”实习生需要“ref”,这样当我通过节点运行包含 ref 的代码时,它可以完美运行..

4

1 回答 1

4

不知何故,我设法找到了解决方案。在我使用 npm 命令安装这些包后,我收到了绑定错误。作为解决方案,我需要在外部为该新包运行“electron-rebuild”命令。使用 npm 下载电子重建模块,然后运行“电子重建 -f -w ffi”和“电子重建 -f -w ref”。就是这样,它现在可以工作了。

于 2016-12-08T13:32:19.177 回答