require("electron").app未定义。我已经安装了最新的模块,但不确定该怎么做。

6

昨天,我在Electron上进行编程非常顺利。然后我打开电脑发现Electron现在根本不能工作。

我删除了node_modules并进行了全新的npm install

package.json:

...
"devDependencies": {
    "devtron": "^1.4.0",
    "electron": "^1.4.7"
  },
"dependencies": {
    "electron-debug": "^1.1.0"
  }
...

我收到了error

我尝试了之前解决此问题的建议,但没有任何效果。

Electron未全局安装。所有东西都应该是自包含的。

npm list

大部分代码来自于electron boilerplate

编辑:

主进程:

'use strict';

const path = require('path');
const electron = require('electron');
const app = electron.app;

// adds debug features like hotkeys for triggering dev tools and reload
require('electron-debug')({
    showDevTools: true
});

// prevent window being garbage collected
let mainWindow;

function onClosed() {
    // dereference the window
    // for multiple windows store them in an array
    mainWindow = null;
}

function createMainWindow() {
    const display = electron.screen.getPrimaryDisplay();

    const win = new electron.BrowserWindow({
        width: display.workArea.width,
        height: display.workArea.height
    });

    const projectPath = path.dirname(path.dirname(__dirname));

    win.loadURL(`file://${projectPath}/static/index.html`);
    win.on('closed', onClosed);

    return win;
}

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

app.on('activate', () => {
    if (!mainWindow) {
        mainWindow = createMainWindow();
    }
});

app.on('ready', () => {
    mainWindow = createMainWindow();
});

1
@Aurora0001,我已经编辑了主进程代码。 - zyeek
1
@Aurora0001 我刚刚做了那个。每个变量的输出是:electron: /Users/user/Programming/electron-project/node_modules/electron/index.jsapp: undefined - zyeek
如果您克隆了一个样板库,安装了新的依赖项并运行,能否重现此问题?如果是这样,那么可能是某些全局因素干扰了Electron。否则,我会倾向于使用工作正常的模块,因为我不知道您当前的模块发生了什么事情。 - Aurora0001
1
@Aurora0001 好的,太糟糕了。我似乎无法在样板上重现我的错误。毫无意义。昨天它还能正常工作,而我什么都没改。 - zyeek
1
@Aurora0001 噢,这真是太奇怪了。我觉得一定是Atom终端插件搞砸了所有东西。我正在采取渲染过程,将它复制到样板文件的渲染过程文件中。当我使用插件终端运行时,它会崩溃,但当我在普通终端上运行时它就没问题。此外,还有一些来自终端的bug报告。我认为它可能已经与npm搞错了。好的,问题解决了。 - zyeek
显示剩余6条评论
1个回答

16

在我的情况下,问题得到了解决,我使用原始终端而不是Atom的插件终端。

对于其他人,请双重检查您的原始终端或者编辑器来确认。


5
有人曾经发现了这背后的原因吗? - Guill
1
我在使用 VS Code 调试 Electron 应用程序时遇到了这个问题。我添加了一个类似于 此处 的配置文件。请确保从调试器窗口中取消选中“所有异常”和“未捕获的异常”。这样应该可以顺利进行调试。 - Jabed
直到我退出tmux,才遇到了同样的问题:( - CarterKF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接