我有一个正在运行的Electron应用程序,到目前为止工作得很好.对于上下文,我需要运行/打开一个外部文件,这是一个Go-lang二进制文件,它将执行一些后台任务.基本上它将作为后端并暴露电子应用程序将消耗的API.
到目前为止,这是我进入的:
我尝试使用child_process以"节点方式"打开文件,但是由于路径问题,我无法打开示例txt文件.
Electron API暴露了一个开放文件事件,但缺少文档/示例,我不知道它是否有用.
而已.我如何在Electron中打开外部文件?
我想要一个菜单,在主进程中定义,在原子/电子应用程序的当前浏览器窗口中调用JS代码.
从浏览器窗口获取主进程全局变量是
const remote = require('remote')
const foo = remote.getGlobal('foo')
Run Code Online (Sandbox Code Playgroud)
主进程(即获取当前窗口全局变量)的等价物是什么.这就是我想在伪代码中做的事情
// JS inside main process
const BrowserWindow = require('browser-window')
//...
// Inside the menu callback
let window = BrowserWindow.getFocusedWindow()
let commander = window.global('commander') /// <---- PSEUDO-CODE !!!
commander.handleCommand('File.Save')
Run Code Online (Sandbox Code Playgroud) 有关如何将第三方预编译的二进制文件(如imagemagick)包含在电子应用程序中的解决方案吗?有node.js模块,但它们都是包装器或本机绑定到系统范围内安装的库.我想知道是否可以在分发中捆绑预编译的二进制文件.
我正在尝试制作一个从我的串口读取数据的电子应用程序(https://electron.atom.io/).我是Web技术的新手,我知道一些javascript,但我是一个c ++人.
所以我从github快速入手,跑了
npm install && npm start
Run Code Online (Sandbox Code Playgroud)
随着这个轻松工作,我尝试安装和运行serialport
npm install serialport
Run Code Online (Sandbox Code Playgroud)
使用测试文件安装并运行正常,我尝试将两者合并并放入require('serialport')index.html文件.有了这个,我得到这个错误:
Uncaught Error: The module '/home/user/Documents/Programing/Git/Arduino-mpu6050/electron-quick-start/node_modules/serialport/build/Release/serialport.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 51. This version of Node.js requires
NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or`npm install`).
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
at Object.Module._extensions..node (module.js:598:18)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17) …Run Code Online (Sandbox Code Playgroud) 我正在Electron app使用Angular 4.我希望在某些特定动作上播放声音.那有什么模块或代码吗?它可以是角4或者如果电子提供一些服务,它也应该工作
由于我想在某些动作上播放它,我无法使用HTML音频标签和javascript的audio()
我只想播放2-3秒的声音,因此不需要其他功能.
它可以是电子或角度4,它们中的任何一个都可以工作......
通过npm安装本机模块与Electron(原子壳)一起使用后,我正在尝试运行电子重建:
>>./node_modules/.bin/electron-rebuild
Run Code Online (Sandbox Code Playgroud)
从项目目录,b"〜/ project_js/React-Redux-Py-Electron /"(包含 node_modules /).但我收到此错误消息:
>>Unable to find Electron app at ~/project_js/React-Redux-Py-Electron/console.log(process.versions.modules)
Run Code Online (Sandbox Code Playgroud)
使用版本:
node v6.2.0,
npm 3.8.9,
electron-prebuilt 1.2.0,
electron-rebuild 1.1.4,
Run Code Online (Sandbox Code Playgroud)
我相信这些都是最新的.有一段时间,也许在某些版本升级之前,这种方法很有效.
谁能解释并建议修复?谢谢.
如何使用NodeJS找到计算机所有者当前使用的用户名(登录时)?
我搜索了一下,但没找到任何东西......
我有一个Electron应用程序,我正在尝试安装节点模块.当我运行时npm install,它会创建node_modules文件夹,但所有模块都会进入一个名为的子文件夹.staging.每个模块也-xxxxx附加了它,其中x是一些随机字母数字.
我创建的其他电子应用程序从未这样做过.所有节点模块都位于根目录中,node_modules并且没有-xxxxx附加.
知道为什么会这样吗?
我第一次玩电子。尝试创建一个文本编辑器
在渲染中,我正在发送一条消息以指示内容已更改并需要保存:
document.getElementById('content').onkeyup = e => {
ipcRenderer.send('SAVE_NEEDED', {
content: e.target.innerHTML,
fileDir
})
}
Run Code Online (Sandbox Code Playgroud)
然后ipcMain接收它没有问题。在菜单上我有这个:
{
label: 'Save',
click: _ => {
saveFile(message)
// trying:
// ipcMain.send('SAVED', 'File Saved')
},
accelerator: 'cmd+S', // shortcut
}
Run Code Online (Sandbox Code Playgroud)
这样用户就知道文件已经有了。但这似乎不起作用。有没有其他方法可以做到这一点?我原以为“保存”将是一个预先创建的角色(有点)
electron ×10
node.js ×6
javascript ×5
angular ×1
audio ×1
imagemagick ×1
npm ×1
package.json ×1
username ×1
webstorm ×1