【问题标题】:TypeError: Cannot read property 'whenReady' of undefinedTypeError:无法读取未定义的属性“whenReady”
【发布时间】:2021-01-04 01:52:21
【问题描述】:

我对电子有疑问。

TypeError: 无法读取未定义的属性“whenReady”

我用 节点 14.0.1 电子10.1.2

我运行我的应用程序 "electron:serve": "vue-cli-service electron:serve",

我的背景.js

const { app, BrowserWindow } = require('electron')
const { server } = require('feature-server-core')

server.start();

function createWindow () {
    // Создаем окно браузера.

    const win = new BrowserWindow({
        width: 1400,
        height: 900,
        minWidth: 1280,
        minHeight: 800,
        closable: true,
        center: true,
        type: "tool",
        titleBarStyle: "hidden",
    })

    win.menuBarVisible = false;
// и загружаем index.html в приложении.
    win.loadURL("google.com")
}

app.whenReady().then(() => {
    createWindow()

    app.on('activate', function () {
        // On macOS it's common to re-create a window in the app when the
        // dock icon is clicked and there are no other windows open.
        if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
})

// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', function () {
    if (process.platform !== 'darwin') app.quit()
})

【问题讨论】:

标签: javascript node.js electron


【解决方案1】:

这是直接调用'index.js'node index.js 之类的节点相关的问题。 您需要使用electron index.jselectron .(如果您的文件是index.js) electron 正在构建您的应用程序。

【讨论】:

    【解决方案2】:

    我解决了同样的问题,只是在文件夹的终端输入

    npm start
    

    【讨论】:

      【解决方案3】:

      我有同样的症状,但根本问题与您在 Internet 上其他地方发现的完全不同。通常,此问题来自意外运行 main.jsnode 而不是 electron。但在我的情况下,问题是在项目文件夹和一些子文件夹上设置了 NTFS 区分大小写标志,因为它们最初是使用 WSL 创建的。这会导致诸如 electron.cmd 之类的奇怪事情,因为 Windows 正在寻找带有大写扩展名的 electron.CMD 等,显然 Electron 内部也存在一些类似的问题,这使得它认为我们毕竟不在 Electron 内部,给我们electron 的非电子版本,它没有app

      解决方案是使用 Windows 资源管理器创建整个项目文件夹的副本,并使用该文件夹而不是原始文件夹。 Windows 资源管理器不保留区分大小写标志,因此创建文件夹的副本也会清除所有子文件夹中的标志。 (然后您可以删除旧文件夹。)

      有关 NTFS 区分大小写的更多信息:https://www.howtogeek.com/354220/how-to-enable-case-sensitive-folders-on-windows-10/


      另一个原因可能是设置了环境变量ELECTRON_RUN_AS_NODE=1,可能来自很久以前的一些实验或测试。确保未设置此变量。

      【讨论】:

        【解决方案4】:

        您可以使用npm start 而不是node . 来执行您的应用程序。如果您使用的是 IDE,则必须使用 start 选项配置 npm

        【讨论】:

          猜你喜欢
          • 2022-01-03
          • 1970-01-01
          • 2020-11-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-24
          • 2019-08-19
          相关资源
          最近更新 更多