Запуск "First Electron App" не будет показывать версии? - PullRequest
1 голос
/ 17 июня 2019

Я следую краткому руководству Electron , оно работает без ошибок, но вывод не такой, как описано в документации, версии с document.write не будут отображаться на выходе.

Это мой вывод:

Hello World!

We are using node , Chrome , and Electron .

Мой ожидаемый вывод будет включать соответствующие номера версий.

Я проверил страницу приложения на GitHub, все та же, попробовал различные ответы StackOverflow, но у меня не получилось ни одного.

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
We are using node <script>document.write(process.versions.node) </script>,
Chrome <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron) </script>.
</body>
</html>

package.json

{
    "name": "electronapp",
    "version": "1.0.0",
    "description": "",
    "main": "main.js",
    "scripts": {
       "start": "electron ."
    },
    "author": "harsh",
    "license": "ISC",
    "devDependencies": {
        "electron": "^5.0.2"
    }
}

main.js

const {app, BrowserWindow} = require('electron')
const path = require('path')
let mainWindow

function createWindow () {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    })

    mainWindow.loadFile('index.html')
    mainWindow.on('closed', function () {
        mainWindow = null
    })
}

app.on('ready', createWindow)

app.on('window-all-closed', function () {
    if (process.platform !== 'darwin')
        app.quit()
})

app.on('activate', function () {
    if (mainWindow === null)
        createWindow()
})

У меня глобально установлен Node, и Chrome поставляется с Electron, верно?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Это ваш файл с исправлением

const {app, BrowserWindow} = require('electron')
const path = require('path')
let mainWindow
function createWindow () {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            // I think you don't need this line
            // preload: path.join(__dirname, 'preload.js') 
            nodeIntegration: true
        }
    })
    mainWindow.loadFile('index.html')
    mainWindow.on('closed', function () {
        mainWindow = null
    })
}
app.on('ready', createWindow)
app.on('window-all-closed', function () {
    if (process.platform !== 'darwin') app.quit()
})
app.on('activate', function () {
    if (mainWindow === null) createWindow()
})
1 голос
/ 17 июня 2019

Если вы активируете Инструменты разработчика, вы должны увидеть сообщения об ошибках в консоли, например:

Uncaught ReferenceError: process is not defined
    at index.html:11

Вам необходимо активировать nodeIntegration BrowserWindow , чтобы процесс, выполняющийся в BrowserWindow («процесс визуализации»), имел доступ к объекту Node's process.

mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
        nodeIntegration: true
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...