电子重建"无法找到电子应用......"

Ste*_*veB 28 javascript node.js electron

通过npm安装本机模块与Electron(原子壳)一起使用后,我正在尝试运行电子重建:

>>./node_modules/.bin/electron-rebuild
Run Code Online (Sandbox Code Playgroud)

从项目目录,b"〜/ project_js/React-Redux-Py-Electron /"(包含 node_modules /).但我收到此错误消息:

>>Unable to find Electron app at ~/project_js/React-Redux-Py-Electron/console.log(process.versions.modules)
Run Code Online (Sandbox Code Playgroud)

使用版本:

node v6.2.0, 
npm 3.8.9, 
electron-prebuilt 1.2.0, 
electron-rebuild 1.1.4, 
Run Code Online (Sandbox Code Playgroud)

我相信这些都是最新的.有一段时间,也许在某些版本升级之前,这种方法很有效.

谁能解释并建议修复?谢谢.

Abr*_*esh 77

检查你的package.json是否有"main"键.这里main.js是您的Electron Configuration JS文件.

{
  "name": "appname",
  "version": "0.0.0",
  "license": "MIT",
  "main": "main.js"
}
Run Code Online (Sandbox Code Playgroud)


小智 9

入口点文件名和package.json主文件名应相同.考虑你的入口点的文件名app.js,然后package.json看起来像

{
  "name": "myelectron",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "electron": "^2.0.3"
  }
}
Run Code Online (Sandbox Code Playgroud)


Pen*_*esh 8

对我来说,由于package.json我正在运行electron命令的文件夹中缺少文件,因此抛出此错误.确保该文件夹包含名为的文件

  1. main.js
  2. index.html
  3. package.json

并定义变量electron, app并BrowserWindow在main.js中

               const electron = require('electron');             
               const {app, BrowserWindow} = electron;  
Run Code Online (Sandbox Code Playgroud)


pg2*_*286 5

对我来说,这个问题是由于运行命令时名称不一致引起的Electron。

确保为运行提供的文件名应与package.json 中 主条目中提供的文件名相同,例如在 Mac OS 上与主package.json中的文件名/Applications/Electron.app/Contents/MacOS/Electron hello-world匹配hello-world.js

{
  "name": "first_electron_app",
  "version": "0.0.1",
  "main": "hello-world.js",
  "dependencies": {    
  }
}
Run Code Online (Sandbox Code Playgroud)


Kir*_*iya 5

确保您为应用程序定义了入口点。通常,它总是一个index.jsor main.js。您需要将 in 指定package.json为应用程序的入口点。在这种情况下发生的情况是,electron 需要入口点,但它没有找到 frompackage.json并且无法启动main process. 要修复它,您可以main在 package.json 中添加属性作为根属性,如下所示,

{
  "name": "YOUR_APP_NAME",
  "version": "1.0.0",
  "main": "main.js"
}
Run Code Online (Sandbox Code Playgroud)

另一件重要的事情是,只需通过运行命令检查一次依赖项npm list --depth=0并确认electron是否存在。


Tre*_*ine 1

npm run build && npm start为我修好了

  • 这两个命令都取决于它们在 `package.json` / `scripts` 中的配置,因此如果没有 `package.json` 的内容,这些信息就没有用。 (7认同)