Javascript 为什么electron中的IpcRender在编译到.exe文件后没有从BrowserWindow.send()获取任何值
我有一个问题,我不知道问题的确切原因是什么,我在Javascript 为什么electron中的IpcRender在编译到.exe文件后没有从BrowserWindow.send()获取任何值,javascript,npm,electron,electron-builder,electron-packager,Javascript,Npm,Electron,Electron Builder,Electron Packager,我有一个问题,我不知道问题的确切原因是什么,我在index.js中有简单的代码作为main和index.html,在main.js中,当我在将脚本构建到.exe之前尝试时,脚本会将电子渲染器的版本发送到文件index.html,ipcrederer可以从sended value中获取值,在我运行build into.exe文件之前,如下图所示: 但是当我使用电子封装器将它构建到exe文件中时。 在html文件中的index.js发送版本后,它没有返回任何值,下面的图像是我在编译成.exe文件后
index.js
中有简单的代码作为main和index.html
,在main.js
中,当我在将脚本构建到.exe
之前尝试时,脚本会将电子渲染器的版本发送到文件index.html
,ipcrederer
可以从sended value中获取值,在我运行build into.exe
文件之前,如下图所示:
但是当我使用电子封装器将它构建到exe文件中时。
在html文件中的index.js
发送版本后,它没有返回任何值,下面的图像是我在编译成.exe
文件后运行的图像,如下所示
这是我的以下脚本和package.json:
index.js
const { app, BrowserWindow,ipcMain } = require('electron')
function createWindow () {
// Create the browser window.
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
enableRemoteModule : false
}
})
const appVersion = process.env.npm_package_version
// and load the index.html of the app.
win.toggleDevTools()
win.loadFile('index.html')
win.webContents.on('dom-ready', () => {
console.log(`Trying to send app version to renderer: ${appVersion}`)
win.send('app-version', appVersion)
console.log(`Current directory: ${process.cwd()}`);
})
}
app.whenReady().then(createWindow)
index.html
<html>
<head>
<title></title>
</head>
<body>
<div id ="appVersion">
</div>
</body>
</html>
<script>
'use strict'
const { ipcRenderer} = require('electron')
ipcRenderer.on('app-version', function (event,store) {
console.log(store);
});
</script>
package.json
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "electron ."
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^9.2.0",
"electron-packager": "^15.0.0"
}
}