【问题标题】:Electron-packager: cannot find module电子包装器:找不到模块
【发布时间】:2016-06-11 11:07:56
【问题描述】:

我尝试使用 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;
  });

});

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

谢谢。

【问题讨论】:

    标签: electron


    【解决方案1】:

    你可以尝试两件事:

    • 确保您需要在生产构建中运行的每个节点模块都添加到 package.json 中的dependencies。例如:npm install &lt;module_name&gt; --save
    • 当 --asar=false 时它是如何工作的(更多信息请访问https://github.com/electron-userland/electron-packager

    【讨论】:

    • 谢谢,package.json 文件有错误
    • 我已将我的devDependencies 切换为dependencies,它似乎工作正常!
    • 对我来说,我必须在package.json 中指定"main": "./dist/main.js",因为它试图找到index.js,这可能是默认值。我用electron-quick-start-typscript 用打字稿开始了这个项目。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      所以我遇到了同样的问题。当我 cd 进入我的项目文件夹并完成时,我的问题得到了解决

      npm i -D electron@latest

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

      【讨论】:

        【解决方案4】:

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

        "main": "app.js"
        

        【讨论】:

          【解决方案5】:

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

          npx cap add electron
          

          【讨论】:

            猜你喜欢
            • 2017-06-11
            • 2016-02-28
            • 1970-01-01
            • 2016-03-29
            • 2020-03-10
            • 2017-01-09
            • 2019-06-05
            • 2018-03-15
            • 2022-01-06
            相关资源
            最近更新 更多