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

Posted

技术标签:

【中文标题】require("electron").app 未定义。我 npm 安装了新的模块。不确定该怎么做【英文标题】:require("electron").app is undefined. I npm installed fresh modules. Unsure what to do 【发布时间】:2017-04-01 12:47:34 【问题描述】:

昨天,我在 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();
);

【问题讨论】:

能否包含导致错误的代码?您可能只是以某种方式输入错误。 @Aurora0001 我用主进程代码编辑了。 @Aurora0001 我就是这么做的。每个变量的输出。 electron: /Users/user/Programming/electron-project/node_modules/electron/index.jsapp: undefined @Aurora0001 好吧,太蹩脚了。我似乎无法在样板上重现我的错误。没有意义。它昨天确实在工作,我什么也没改变。 @Aurora0001 哦,这太奇怪了。所以,我认为它一定是一个 Atom 终端插件,它以某种方式破坏了一切。我正在进行渲染过程。将其复制到样板的渲染过程文件中。当我使用插件终端运行时。它崩溃了,但是当我在我的普通终端上运行时它运行。此外,还有一些来自终端的错误报告。认为它可能以某种方式与 npm 搞砸了。好的,它已修复。 【参考方案1】:

所以,就我而言。通过使用我原来的终端而不是 Atom 的插件终端解决了问题。

对于那里的任何人。使用您的 vanilla 终端甚至编辑器仔细检查以进行仔细检查。

【讨论】:

有人发现这背后的原因吗? 我在使用 vs 代码调试电子应用程序时遇到了这个问题。我添加了一个类似于this 的配置文件。确保从调试器窗口中取消选中“所有异常”和“未捕获的异常”。它应该可以顺利调试。

以上是关于require("electron").app 未定义。我 npm 安装了新的模块。不确定该怎么做的主要内容,如果未能解决你的问题,请参考以下文章

Electron 发生错误 "Cannot find module app"的解决方案

在 Electron 应用程序中使用 require(lib) 与 <script>

zeromq w/ Electron:找不到绑定文件

electron 中renderer.js中使用require('electron') 报错require is not defined

Electron 应用程序中的“找不到模块 jquery”

构建和运行 vscode 源代码时无法成功 require('electron')