首页 > 解决方案 > Electron - 构建应用程序时找不到模块“应用程序”

问题描述

我坚持使用角度构建电子应用程序。

这是日志

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 start是相同的node 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.jsangularelectron

解决方案


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

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


推荐阅读