Электрон-rebuild "Невозможно найти приложение 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, 

которые, я считаю, все последние. В свое время, возможно, до некоторых обновлений версии, это сработало.

Может ли кто-нибудь объяснить и предложить исправить? Спасибо.

Ответ 1

Проверьте, имеет ли ваш пакет .json ключевой ключ. Здесь main.js - ваш JS файл конфигурации электрона.

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

Ответ 2

Имя файла точки входа и имя основного файла 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"
  }
}

Ответ 3

Для меня эта ошибка была выбрана из-за отсутствия файла package.json в папке, в которой я запускал команду electron. Убедитесь, что папка состоит из файлов с именем

  • main.js
  • index.html
  • package.json

и определить переменные electron, app и BrowserWindow в main.js равны

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

Ответ 4

для меня проблема возникла из-за несогласованности с именем при запуске команды Electron.

Убедитесь, что имя файла, предоставленное для запуска, должно быть таким же, как указано в записи main в package.json, например. на Mac OS /Applications/Electron.app/Contents/MacOS/Electron hello-world соответствует hello-world.js в main package.json

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

Ответ 5

Убедитесь, что вы определили точку входа для приложения. как правило, это всегда index.js или main.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 есть.

Ответ 6

npm run build && npm start исправил это для меня