Articles of 电子

使用节点需要使用Electron和Webpack

我正在用Electron构build一个项目,并使用Webpack构build(Angular 2)渲染过程应用程序。 在这个应用程序中,我需要dynamic地在运行时require一些在构build时不存在的文件。 代码看起来像这样: require("fs").readdirSync(this.path).forEach(file => { let myModule = require(path.join(this.path, file)); // do stuff with myModule }); 问题是Webpack编译器会将require()调用转换为它自己的__webpack_require__()并且在运行时它会在它自己的内部模块registry中查找dynamic的“myModule”文件,当然也不会find它。 我曾尝试使用“外部”configuration选项,但由于这是一个dynamic的要求,它似乎并没有被“外部”处理。 任何人都能成功解决这个问题?

require('atom')如何工作?

Atom公开了一些可以从require('atom')访问的全局API 这个function如何工作? Atom包没有明确地将primefaces作为依赖,但他们仍然可以做到这一点。 而且,我怎样才能用我自己的全球软件包在我自己的Electron应用程序中做到这一点?

如何在源代码(用于自定义日志logging)在TypeScript中获取实际的行号

引用这个问题我正在使用这一点的代码find调用者的行号到我的自定义日志loggingfunction: /** * eLog – displays calling line number & message & dumps vars as pretty json string * @param {string} msg – string to display in log message * @param {any} dispVars – any number of variables (ellipsis , aka Rest parameters) to dump */ function eLog(msg:string,…dispVars:any[]){ let caller_line = (new Error).stack.split("\n")[4]; console.log(`eLog->Line#${caller_line}->${msg}->`); console.log(JSON.stringify((new […]

如何获得在Mac上使用Node.js在前台运行的应用程序窗口的坐标?

我正在编写一个将在Mac电脑上运行的node.js脚本。 我想获得在前台运行的应用程序的坐标和处理细节。 例如,如果我运行的脚本,我已经打开的唯一的程序是谷歌浏览器,那么我应该得到一个包含1个对象的数组: Google Chrome的进程ID Google Chrome窗口的x / y坐标。 到目前为止,我所能做的就是获取正在运行的进程列表: ps-node :进程查找实用程序 如果有帮助,我也将使用nw.js框架来运行我的应用程序。

始终显示托盘图标

我正在使用Electron编写OSX应用程序,主要关注托盘。 基本上,它只显示当前应用程序正在使用,我怎么能设置它,使其独立于窗口?

电子RE​​ST API

在哪里以及如何在电子应用程序中编写REST API? 我已经编写了API(访问MongoDB以在数据库中添加/删除/修改对象),并且在NodeJS应用程序中运行良好。 但我不清楚如何在电子应用程序中做同样的事情。

电子重build构buildnode-sqlite3的错误版本

我正在尝试在Windows 10开发机器上启动并运行Electron应用程序。 我运行npm install ,它会安装所有的依赖包括sqlite3 , electron-prebuilt和electron-rebuild 。 然后运行electron-rebuild -w sqlite3 -p创buildnode-sqlite3绑定,并成功创buildelectron-v1.4-win32-x64绑定。 然而,当我运行电子应用程序,它会抛出一个错误,因为它是期待electron-v1.2-win32-x64 。 我如何强制1.2的版本,而不是1.4的绑定? 另外,如何让我的电子应用程序使用v1.4?

电子和socketsio无法closures窗口

我开始与NodeJS和Socket io聊天应用程序项目,一切都很好。 后来我决定把我的应用程序添加到Electron框架中,聊天开始在一个窗口中,但是我不能closures这个窗口,退出button什么也不做。 经过对我的代码的一些研究,以了解问题的来源,我删除了我的main.html中的socket.io.js行,然后我可以closures我的应用程序,但肯定我的客户端WebSocket停止工作。 <script src="/socket.io/socket.io.js"></script> 这是我的main.js中的createWindow函数。 function createWindow () { // Instantiate Express App app.server = require(__dirname + '/app/app')(); // Create the browser window. win = new BrowserWindow(); // win.maximize(); // and load the index.html of the app. win.loadURL('http://localhost:'+config.server.port); // Open the DevTools. // win.webContents.openDevTools(); win.focus(); // Emitted when the window is closed. win.on('closed', […]

有没有可能从内存中的HTMLstring加载电子webContents?

假设我有两个进程: 进程1正在向进程2发送一个有效的htmlstring: ipcRenderer.send('open-window-from-string', '<!DOCTYPE html>' + '<html>' + htmlElement.innerHTML + '</html>'); 进程2(电子主进程)试图从该string中打开一个新窗口: ipc.on('open-window-from-string', (event, htmlString) => { const windowFromString= BrowserWindow.fromWebContents(htmlString); } 我知道我可以将html保存为一个实际的html文件。 这样一切工作,而使用: loadURL(`file://${__dirname}/windowFromString.html`); 但是这会导致不必要的读/写操作。 这就是为什么我试图加载一个从我的记忆中的htmlString的新窗口。 所以问题是: 是否有可能从内存中的HTMLstring加载电子webContents? 在此先感谢您的帮助。 问候,Megajin

如何在文件对话框中select文件或文件夹

如何在Node.js / electron中打开文件对话框,以便能够select文件夹或文件。 当我使用 <input type="file"/> 它会打开文件对话框,但不会允许我select一个文件夹。 但是当我尝试 <input type="file" webkitdirectory/> 它会打开对话框,但不会允许select文件夹。 我想要做的只是一个inputbutton,或者不一定是一个button,而是一种启动本地系统文件浏览器的方法。