Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Electron-packager: cannot find module

Tags:

electron

I trying to package my app using electron-Packager and this command:

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

(I'm using MacOsx) the app is created but when I run it I get a pop-up showing this:

Uncaught Exception:

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

in this folder : "/Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/app" there is the entry pointing html file "menu.html", but it seems electron cannot find it...

this is my 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;
  });

});

Do you have any ideas on what could be the problem?

Thank you.

like image 989
navy1978 Avatar asked Feb 28 '16 11:02

navy1978


4 Answers

Two things you can try:

  • Make sure every node modules that you need to run on production build added into dependencies in package.json. E.g: npm install <module_name> --save
  • How does it work when --asar=false (More info at https://github.com/electron-userland/electron-packager)
like image 74
phuongle Avatar answered Oct 12 '22 16:10

phuongle


So i had this same problem. Mine got solved when i cd in to my project folder and did

npm i -D electron@latest

Sometimes adding in package.json and npm install would not have installed it properly. Please lemme know if it worked for you.

like image 43
Shan Avatar answered Oct 12 '22 17:10

Shan


For me the problem was that the module dependencies were listed in "devDependencies" in package.json

Moving them to "dependencies" and running npm install again solved the problem.

like image 29
LachoTomov Avatar answered Oct 12 '22 17:10

LachoTomov


what worked for me was modifying the reference to the main application file ie : main.js for newer electron versions or app.js for old versions of electron in package.json as follows :

"main": "app.js"
like image 1
Ahmed Maher Avatar answered Oct 12 '22 18:10

Ahmed Maher