web-dev-qa-db-ja.com

Electron-packager:モジュールが見つかりません

Electron-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;
  });

});

何が問題になる可能性があるかについてのアイデアはありますか?

ありがとうございました。

14
navy1978

試すことができる2つのこと:

  • Package.jsonのdependenciesに本番ビルドで実行する必要があるすべてのノードモジュールが追加されていることを確認してください。例:npm install <module_name> --save
  • --asar = falseの場合の仕組み(詳細は https://github.com/electron-userland/electron-packager
14
phuongle

私にとっての問題は、モジュールの依存関係がpackage.jsonの「devDependencies」にリストされていることでした

それらを「依存関係」に移動し、npm installを再度実行して問題を解決しました。

1
Lacho Tomov

だから私はこれと同じ問題を抱えていた。私がcdをプロジェクトフォルダに入れて解決したとき、私のものは解決しました

npm i -D electron@latest

Package.jsonとnpm installを追加すると、適切にインストールされない場合がありました。それがあなたのために働いたかどうかを教えてください。

1
Shan

私のために働いたのは、メインアプリケーションファイルへの参照を変更することでした:package.jsonのelectronの新しいバージョンのmain.jsまたはapp.jsは、次のように修正しました:

"main": "app.js"
1
ahmed maher