【问题标题】:Electron - Cannot find module 'app' when building appElectron - 构建应用程序时找不到模块“应用程序”
【发布时间】:2019-12-30 15:49:43
【问题描述】:

我一直在使用 Angular 构建电子应用程序。

这是日志

App threw an error during load
Error: Cannot find module 'app'
Require stack:
- /Users/saikrishna/Documents/Angular/popsql/main.js
- /Users/saikrishna/Documents/Angular/popsql/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:627:15)
    at Function.Module._resolveFilename (/Users/saikrishna/Documents/Angular/popsql/node_modules/electron/dist/Electron.app/Contents/Resources/electron.asar/common/reset-search-paths.js:41:16)
    at Function.Module._load (internal/modules/cjs/loader.js:531:27)
    at Module.require (internal/modules/cjs/loader.js:685:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/Users/saikrishna/Documents/Angular/popsql/main.js:2:13)
    at Module._compile (internal/modules/cjs/loader.js:786:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:798:10)
    at Module.load (internal/modules/cjs/loader.js:645:32)
    at Function.Module._load (internal/modules/cjs/loader.js:560:12)

这是我的 main.js

const electron = require('electron');
const app = require('app');
const BrowserWindow = require('browser-window')

let mainWindow

app.on('ready', _ => {
  mainWindow = new BrowserWindow({
    height: 400,
    width: 400
  })
  mainWindow.on('closed', _ => {
    console.log('closed')
    mainWindow = null
  })
})

node main.js启动节点服务器

npm startnode main.js 相同

尝试重新安装电子。

将电子从开发依赖项移至依赖项

删除了 node_modules 然后npm install

然后我改成

const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;

现在,不同的错误

/Users/saikrishna/Documents/Angular/popsql/main.js:10
app.on('ready', _ => {
    ^

TypeError: Cannot read property 'on' of undefined
    at Object.<anonymous> (/Users/saikrishna/Documents/Angular/popsql/main.js:10:5)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

有什么我应该尝试让电子工作的方法

【问题讨论】:

    标签: node.js angular electron


    【解决方案1】:

    Electron 就像cordova,这个变量只在你运行电子时才被初始化,我的建议?使用这个库https://github.com/ThorstenHans/ngx-electron

    请记住,electron 不能像 ng serve 那样工作,您必须构建 angular 应用程序,并且它们使用 electron 主 js 文件运行。当电子应用启动时,电子全局变量将被初始化。

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 2019-01-28
      • 2015-01-18
      • 2018-08-23
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多