电子重建“无法找到电子应用......”

时间:2016-05-27 17:48:23

标签: javascript node.js electron

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

>>./node_modules/.bin/electron-rebuild

从项目目录,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)

使用版本:

node v6.2.0, 
npm 3.8.9, 
electron-prebuilt 1.2.0, 
electron-rebuild 1.1.4, 

我认为这是最新的。有一段时间,也许在某些版本升级之前,这有效。

任何人都可以解释并建议修复吗?感谢。

6 个答案:

答案 0 :(得分:71)

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

{
  "name": "appname",
  "version": "0.0.0",
  "license": "MIT",
  "main": "main.js"
}

答案 1 :(得分: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"
  }
}

答案 2 :(得分:8)

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

的文件
  1. main.js
  2. index.html
  3. package.json
  4. 并在electron中定义变量appBrowserWindowmain.js

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

答案 3 :(得分:2)

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

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

{
  "name": "first_electron_app",
  "version": "0.0.1",
  "main": "hello-world.js",
  "dependencies": {    
  }
}

答案 4 :(得分:1)

确保已为应用程序定义了入口点。通常,它始终是index.jsmain.js。您需要在package.json中指定作为应用程序的入口点。在这种情况下,发生的事情是,电子需要进入点,并且电子没有从package.json中找到,因此无法启动main process。要对其进行修复,可以按如下所示将main属性添加为package.json中的根属性,

{
  "name": "YOUR_APP_NAME",
  "version": "1.0.0",
  "main": "main.js"
}

另一个重要的事情是,只需运行命令npm list --depth=0检查一次依赖关系,并确认electron在其中。

答案 5 :(得分:-1)

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