首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未捕获就绪: app.whenReady() /app.on(“TypeError”)。电子15.1.0

未捕获就绪: app.whenReady() /app.on(“TypeError”)。电子15.1.0
EN

Stack Overflow用户
提问于 2021-10-04 06:52:33
回答 1查看 109关注 0票数 0

Screenshot of app.whenReady function error.

代码语言:javascript
复制
app.whenReady().then(createWindow)

Screenshot of app.on('ready') function error.

代码语言:javascript
复制
app.on('ready', createWindow)

代码语言:javascript
复制
// index.js

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

if (require('electron-squirrel-startup')) { // eslint-disable-line global-require
  app.quit();
}

let mainWindow

function createWindow() {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      enableRemoteModule: true
    }
  });

  mainWindow.loadFile(path.join(__dirname, 'index.html'));

  mainWindow.webContents.openDevTools();
}

app.whenReady().then(createWindow)

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

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

// package.json

{
 "name": "demo-app",
 "productName": "demo-app",
  "version": "1.0.0",
  "description": "My Electron application description",
  "main": "src/index.js",
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish",
        "lint": "echo \"No linting configured\""
      },
      "keywords": [],
      "author": {
        "name": "test",
        "email": "test@test.com"
      },
      "license": "MIT",
      "config": {
        "forge": {
          "packagerConfig": {},
          "makers": [
            {
              "name": "@electron-forge/maker-squirrel",
              "config": {
                "name": "tutorial_app_remote"
              }
            },
            {
              "name": "@electron-forge/maker-zip",
              "platforms": [
                "darwin"
              ]
            },
            {
              "name": "@electron-forge/maker-deb",
              "config": {}
            },
            {
              "name": "@electron-forge/maker-rpm",
              "config": {}
            }
          ]
        }
      },
      "dependencies": {
        "electron-squirrel-startup": "^1.0.0"
      },
      "devDependencies": {
        "@electron-forge/cli": "^6.0.0-beta.61",
        "@electron-forge/maker-deb": "^6.0.0-beta.61",
        "@electron-forge/maker-rpm": "^6.0.0-beta.61",
        "@electron-forge/maker-squirrel": "^6.0.0-beta.61",
        "@electron-forge/maker-zip": "^6.0.0-beta.61",
        "electron": "^15.1.0",
        "nodemon": "^2.0.13"
      }
    }

代码语言:javascript
复制
// index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline'">
    <title>Hello World!</title>
    <link rel="stylesheet" href="index.css">
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>Welcome to your Electron application.</p>
  <script type="module" src="index.js">
  </script>
  </body>
</html>

描述

应用程序是建立的,使用yarn create命令,并具有所有默认功能和属性来运行演示应用程序。检查了上面描述的两个方法,它们返回相同的错误结果。

我还遇到过请求未定义的问题,这是通过在应用程序窗口的webPreferences的contextIsolation属性中添加false标志来解决的(IMHO可能对某些人有用)。

EN

回答 1

Stack Overflow用户

发布于 2021-10-04 12:16:30

你应该多读一点电子文档...我检查的是您的main.js (在您的情况下是**index.js**)。但问题出在你的**index.html**上,它还将index.js作为一个资源脚本。将你的index.js重命名为main.js,并在你的package.json中这样做:那就是你的主进程。显然,在您能够将所需内容放入index.html --> index.js的渲染器中后,将不会再有错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69431957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档