无法读取属性';在';在electron javascript中未定义的

无法读取属性';在';在electron javascript中未定义的,javascript,electron,Javascript,Electron,我正在尝试运行此代码,但每次都收到此错误消息。首先,我在全球安装了npm。然后我在我的应用程序中安装了它,但仍然得到相同的错误 未捕获的TypeError:无法读取处未定义的属性“on” 对象(H:\electric\main.js:12:4)at对象。 (H:\electric\main.js:63:3)在模块处编译(Module.js:571:32)在 Object.Module._extensions..js(Module.js:580:10)位于Module.load (module.j

我正在尝试运行此代码,但每次都收到此错误消息。首先,我在全球安装了
npm
。然后我在我的应用程序中安装了它,但仍然得到相同的错误


未捕获的TypeError:无法读取处未定义的属性“on” 对象(H:\electric\main.js:12:4)at对象。 (H:\electric\main.js:63:3)在模块处编译(Module.js:571:32)在 Object.Module._extensions..js(Module.js:580:10)位于Module.load (module.js:488:32)在tryModuleLoad(module.js:447:12)在 Function.Module.\在Module.require处加载(Module.js:439:3) (module.js:498:17)at require(internal/module.js:20:19)at file:///H:/electric/views/login.html:2:3


如果尚未安装,请尝试删除此旧软件包并安装此软件包:

git clone https://github.com/electron/electron-quick-start
cd electron-quick-start
npm install
npm start
如果出现相同的错误,请自行修复:

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

显然,应用程序并没有定义。这意味着:

const {app} = require('electron');
找不到您要求的要求。是否确实已将electron安装到适当的文件夹/中

在项目或模块根目录中运行:

npm list --depth=0
获取节点包的列表

有电子吗?如果没有:

npm install electron (with or without an optional flag --save)
从项目根文件夹

如果使用了标志,则需求将存储在package.json中,当使用
npm install
时,电子将本地安装在您的node_modules文件夹中

您还可以查看electron的npm文档(每个npm模块都可以执行相同的操作-结果在质量上有所不同):
我也有类似的问题。在我的机器上,我必须使用

npm启动

而不是电子指令,否则会给我带来麻烦


谢谢

我需要查看您的html才能确定,但我遇到了这个问题,它是由在html中链接js引起的。基本上,你要启动两次应用程序。一次,当节点在您启动时运行'electron which.js',另一次是因为它在您的html中链接。例如:

我的应用程序正在index.js中创建,index.html是我的应用程序正在加载的内容

index.html有“

脚本src=“index.js”

,所以它发射了两次


我注释掉了脚本,不再出现错误。

我检查了html文件。问题是我已经包含了两次javascript文件。一次在package.json文件中,第二次在html中。因此,我已经从html中删除了javascript。这样,问题就解决了。

我猜您正在尝试使用node运行electron。您的package.json看起来像这样吗

{
    "scripts": {
        "start": "node main.js"
    }
}
请更改为这样运行electron应用程序

{
    "scripts": {
        "start": "electron ."
    }
}
npm install -g electron
应该行得通

注意:对于使用类似命令将electron安装到global的人来说,这是额外的

{
    "scripts": {
        "start": "electron ."
    }
}
npm install -g electron
当您想在代码require(electron)中使用electron时,应使用此命令将全局路径链接到当前目录

npm link electron

事实上,我也遇到了同样的问题。我了解到,您只能要求(electron)一次,否则它将只为调用它的最后一个变量定义。而不是这样做:

const electron = require('electron');
const {Menu} = require('electron');
const {app} = require('electron');
const {BrowserWindow} = require('electron');
这样做:

const { Menu, app, BrowserWindow } = require('electron');

我真的很晚才去看比赛,但在我意识到我犯了一个可怕的错误之前,我花了一段时间在谷歌上搜索

我将我的输入JavaScript文件命名为electron.js,这就是破坏一切的原因


这意味着我的条目electron.js引用/要求的是它自己,而不是node_模块中的条目。

添加应用程序plz打印的错误。未捕获类型错误:无法读取未定义at对象的属性“on”。(H:\electric\main.js:12:4)at对象。(H:\electric\main.js:63:3)at Module.\u编译(Module.js:571:32)at Object.Module.\u扩展..js(Module.js:580:10)at Module.load(Module.js:488:32)at tryModuleLoad(Module.js:447:12)at Function.Module.\u加载(Module.js:439:3)at require(Module.js:498:17)at require(internal/Module/Module.js:20:19)在file:///H:/electric/views/login.html:2:3still 没有得到解决方案。。。我创建了另一个文件夹并再次安装了electron,而我的节点是全局安装的,electron安装在我的应用程序中。。。我得到了同样的错误。。。我如何解决这个问题?你如何启动你的应用程序?是否运行
electron
命令?还要检查项目根目录中的
node\u modules
下是否存在
electron
文件夹。如果没有,请运行
npm install
并再次检查。就是这样。我认为他们都来自一个可怕的,可怕的和灾难性的教程。