Electron-packager:找不到模块

时间:2016-02-28 11:49:22

标签: electron

我尝试使用electronic-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

在此文件夹中:&#34; /Users/myUser/myApp/FooBar-darwin-x64/FooBar.app/Contents/Resources/app"有条目指向html文件&#34; menu.html&#34;,但似乎电子找不到它...

这是我的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;
  });

});

您对可能出现的问题有任何想法吗?

谢谢。

5 个答案:

答案 0 :(得分:13)

你可以尝试两件事:

  • 确保您需要在生产版本上运行的每个节点模块都添加到package.json中的dependencies中。例如:npm install <module_name> --save
  • 当--asar = false(https://github.com/electron-userland/electron-packager的更多信息)
  • 时,它是如何工作的

答案 1 :(得分:1)

对我来说问题是模块依赖项列在package.json中的“devDependencies”中

将它们移到“依赖项”并再次运行npm install解决了这个问题。

答案 2 :(得分:1)

所以我有同样的问题。当我 cd 进入我的项目文件夹并完成

时,我的问题就解决了

npm i -D electron@latest

有时添加package.json和npm install可能无法正确安装它。请让我知道它是否对您有用。

答案 3 :(得分:1)

对我有用的是修改package.json中对主应用程序文件的引用,即:main.js用于较新的电子版本或app.js对于较旧的电子版本,如下所示:

"main": "app.js"

答案 4 :(得分:0)

对我来说,我必须重建电子应用程序。使用 Ionic,首先删除 /electron 文件夹,然后运行:

npx cap add electron