我正在尝试运行此代码但每次收到此错误消息时。首先,我在全球范围内安装了npm
。然后我在我的应用程序中安装它但仍然得到相同的错误。
未捕获的TypeError:无法读取属性' on'未定义的 宾语。在物体上的(H:\ electric \ main.js:12:4)。 (H:\ electric \ main.js:63:3)在Module._compile(module.js:571:32)at at Module.load中的Object.Module._extensions..js(module.js:580:10) (module.js:488:32)在tryModuleLoad(module.js:447:12)at at Module.require中的Function.Module._load(module.js:439:3) (module.js:498:17)at require(internal / module.js:20:19)at 文件:/// H:/electric/views/login.html:2:3
const electron = require('electron');
const {Menu} = require('electron');
const {app} = require('electron');
const {BrowserWindow} = require('electron');
const conn = require('mysql');
const path = require('path');
const url = require('url');
// const app = electron.app;
// const BrowserWindow = electron.BrowserWindow;
var mainWindow = null;
app.on('ready', function () {
mainWindow = new BrowserWindow({ width: 1024, height: 768, backgroundcolor: '#2e2c29' });
mainWindow.loadURL(url.format({
pathname: 'popupcheck.html',
protocol: 'file:',
slashes: true
}));enter code here
mainWindow.webContents.openDevTools();
mainWindow.setProgressBar(1);
});`][1]
答案 0 :(得分:3)
我想您正在尝试使用节点运行电子。您的package.json看起来像这样吗?
{
"scripts": {
"start": "node main.js"
}
}
请更改为运行电子应用程序
{
"scripts": {
"start": "electron ."
}
}
应该可以
注意:,这对于通过诸如此类的命令将电子安装到全局的人来说是额外的
npm install -g electron
当您要在代码 require(electron)中使用电子时,应使用此命令将全局路径链接到当前目录
npm link electron
答案 1 :(得分:3)
我实际上遇到了同样的问题。我了解到您只能要求一次(电子),否则只会为最后一个调用它的变量定义它。而不是这样做:
const electron = require('electron');
const {Menu} = require('electron');
const {app} = require('electron');
const {BrowserWindow} = require('electron');
执行此操作:
const { Menu, app, BrowserWindow } = require('electron');
答案 2 :(得分:1)
答案 3 :(得分:1)
我需要确定您的html,但是我遇到了这个问题,这是由于在html中链接js引起的。基本上,您要两次启动该应用程序。一次,当节点在您启动时运行“ electron what.js”时,又一次,因为它是在html中链接的。例如:
我的应用程序是在index.js中创建的,index.html是我的应用程序正在加载的内容。
index.html具有“
脚本src =“ index.js”
”,因此发射了两次。
我注释掉了脚本,不再出现错误。
答案 4 :(得分:0)
显然,app尚未定义。这意味着:
const {app} = require('electron');
无法找到您要求的要求。你确定你把电子装到了适当的文件夹吗?
在项目或模块根目录中运行:
npm list --depth=0
获取节点包的列表。
那里有电子吗?如果不是:
npm install electron (with or without an optional flag --save)
来自项目根文件夹。
如果使用了flag,则require将存储在package.json中,当使用npm install
时,电子将在本地安装在node_modules文件夹中。
您还可以查看电子的npm文档(每个npm模块也可以这样做 - 结果我的质量不同): npm - electron
答案 5 :(得分:0)
我检查了html文件。问题是我已经包含了我的JavaScript文件两次。一次在package.json文件中,第二次在html中。因此,我从html中删除了JavaScript。这样,问题就解决了。
答案 6 :(得分:0)
我真的很晚才上游戏,但是花了一段时间才开始搜寻我的可怕错误。
我将我的入门JavaScript文件命名为electron.js,这就是破坏一切的原因。
这意味着我的条目 electron.js 是引用/请求ITSELF而不是node_modules中的那个。
答案 7 :(得分:-1)
如果您尚未安装此程序包,请尝试删除此旧程序包并安装此程序包:
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')