web-dev-qa-db-fra.com

Emballeur électronique: impossible de trouver le module

J'essaie d'emballer mon application en utilisant electron-Packager et cette commande:

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

(J'utilise MacOsx), l'application est créée, mais lorsque je l'exécute, une fenêtre contextuelle s'affiche:

Exception non interceptée:

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

dans ce dossier: "/Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/app" se trouve l'entrée pointant le fichier html "menu.html", mais électron semble ne pas le trouver .. .

c'est mon 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;
  });

});

Avez-vous des idées sur ce que pourrait être le problème?

Je vous remercie.

12
navy1978

Deux choses que vous pouvez essayer:

  • Assurez-vous que tous les modules de noeud que vous devez exécuter sur la version de production sont ajoutés à dependencies dans package.json. E.g: npm install <module_name> --save
  • Comment ça marche quand --asar = false (Plus d'infos sur https://github.com/electron-userland/electron-packager )
12
phuongle

Pour moi, le problème était que les dépendances de modules étaient listées dans "devDependencies" dans package.json

En les déplaçant vers des "dépendances" et en exécutant à nouveau l'installation de npm, le problème a été résolu.

1
Lacho Tomov

Donc j'ai eu le même problème. Le mien a été résolu quand je cd dans mon dossier de projet et

npm i -D electron@latest

Parfois, l'ajout dans package.json et npm install ne l'aurait pas installé correctement. S'il te plaît, je sais si cela a fonctionné pour toi.

1
Shan