Подтвердить что ты не робот

Электрон-упаковщик: не удается найти модуль

Я пытаюсь упаковать свое приложение с помощью электронного-Packager и этой команды:

electron-packager . FooBar --platform=darwin --arch=x64 --version=0.36.9

(Я использую MacOsx), приложение создано, но когда я его запускаю, я получаю всплывающее окно, показывающее это:

Непринятое исключение:

Error: Cannot find module '/Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/app/app:/host/menu.html'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:289:25)
    at Object.<anonymous> (/Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/atom.asar/browser/lib/init.js:158:8)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:457:10)
    at startup (node.js:151:18)
    at node.js:1007:3

в этой папке: "/Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/app" есть запись, указывающая html файл "menu.html", но похоже, что электрон не может найти это...

это мой app.js:

var app = require('app');  // Module to control application life.
var BrowserWindow = require('browser-window');  // Module to create native browser window.

var mainWindow = null;


// This method will be called when Electron has done everything
// initialization and ready for creating browser windows.
app.on('ready', function() {

  // Create the browser window.
  mainWindow = new BrowserWindow({width: 1024, height: 768});

  // and load the index.html of the app.
  mainWindow.loadUrl('file://' + __dirname + '/menu.html');

  mainWindow.openDevTools({detach: true});

  // Emitted when the window is closed.
  mainWindow.on('closed', function() {
    mainWindow = null;
  });

});

Есть ли у вас какие-либо идеи о том, что может быть проблемой?

Спасибо.

4b9b3361

Ответ 1

Две вещи, которые вы можете попробовать:

  • Убедитесь, что все node модули, которые необходимо выполнить для сборки сборки, добавлены в dependencies в package.json. Например: npm install <module_name> --save
  • Как это работает, когда --asar = false (Дополнительная информация на https://github.com/electron-userland/electron-packager)

Ответ 2

Для меня проблема заключалась в том, что зависимости модулей были перечислены в "devDependencies" в пакете package.json

Перемещение их в "зависимости" и запуск npm install снова решило проблему.

Ответ 3

У меня была такая же проблема. Мой был решен, когда я зашел в папку с моим проектом и сделал

npm я -D [email protected]

Иногда добавление в package.json и npm install не установит его должным образом. Пожалуйста, дай мне знать, сработало ли это для тебя.

Ответ 4

для меня работало изменение ссылки на основной файл приложения, а именно: main.js для новых версий электронов или app.js для старых версий электронов в package.json следующим образом:

"main": "app.js"