Node.js 笔记
yidichaxiang
职务主要负责系统项目及软件产品的架构设计、开发管理与控制。
目前主要负责容器化和微服务化的系统改造
展开
-
Electron.js API参考——重大变化
重大变化此处将记录重大更改,并在可能的情况下(至少在进行更改之前)至少在一个主要版本中向JS代码添加弃用警告。重大变化的类型本文档使用以下约定对重大更改进行分类:更改了API:对API进行了更改,以确保未更新的代码会引发异常。 行为已更改:Electron的行为已更改,但未必会引发异常。 默认值已更改:取决于旧默认值的代码可能会中断,不一定会引发异常。可以通过显式指定值来恢复旧的行为。 不推荐使用:API被标记为不推荐使用。该API将继续运行,但会发出弃用警告,并将在以后的版...翻译 2020-10-28 14:26:08 · 1427 阅读 · 1 评论 -
Electron.js API参考——Chrome扩展程序支持
Chrome扩展程序支持Electron支持Chrome扩展API的子集,主要是为了支持DevTools扩展和Chromium内部扩展,但它也支持其他一些扩展功能。注意:Electron不支持商店中的任意Chrome扩展,并且与Chrome的扩展实现完全兼容,这不是Electron项目的目标。加载扩展Electron仅支持加载解压的扩展名(即.crx文件不起作用)。扩展是按每个安装的session。要加载扩展,请调用ses.loadExtension:const { se...翻译 2020-10-23 16:17:11 · 1962 阅读 · 0 评论 -
Electron.js API参考——环境变量
环境变量在不更改代码的情况下控制应用程序的配置和行为。某些Electron行为受环境变量控制,因为它们的初始化早于命令行标志和应用程序的代码。POSIX shell示例:$ export ELECTRON_ENABLE_LOGGING=true$ electronWindows控制台示例:> set ELECTRON_ENABLE_LOGGING=true> electron生产变量以下环境变量主要旨在在打包的Electron应用程序中的运行时使.翻译 2020-10-23 16:10:00 · 1851 阅读 · 0 评论 -
Electron.js API参考——支持的命令行开关
支持的命令行开关Electron支持的命令行开关。您可以使用app.commandLine.appendSwitch将它们附加到应用程序的主脚本中,然后发出app模块的ready事件:const { app } = require('electron')app.commandLine.appendSwitch('remote-debugging-port', '8315')app.commandLine.appendSwitch('host-rules', 'MAP * 127.0..翻译 2020-10-23 16:03:29 · 3600 阅读 · 0 评论 -
Electron.js API参考——process
进程进程程对象的扩展。进程:主进程,渲染器进程Electron的process对象是从Node.jsprocess对象扩展的。它添加了以下事件,属性和方法:沙盒在沙盒渲染器中,process对象仅包含API的子集:crash() hang() getCreationTime() getHeapStatistics() getBlinkMemoryInfo() getProcessMemoryInfo() getSystemMemoryInfo() getS...翻译 2020-10-23 15:54:39 · 1898 阅读 · 0 评论 -
Electron.js API参考——Synopsis
概要如何使用Node.js和Electron API。所有的Node.js内置模块都可以在Electron中使用,第三方节点模块(也包括本地模块)也得到完全支持。Electron还提供了一些额外的内置模块,用于开发本机桌面应用程序。一些模块仅在主流程中可用,某些模块仅在渲染器流程(网页)中可用,而某些模块可在两个流程中使用。基本规则是:如果模块与GUI或低级系统相关,则它应仅在主进程中可用。您需要熟悉主流程与渲染器流程脚本的概念,才能使用这些模块。主要流程脚本类似于普通的Node..翻译 2020-10-23 15:25:05 · 282 阅读 · 0 评论 -
Electron.js指南——Mac App Store提交指南
Mac App Store提交指南从v0.34.0开始,Electron允许将打包的应用程序提交到Mac App Store(MAS)。本指南提供以下信息:如何提交您的应用程序以及MAS构建的局限性。注意:向Mac App Store提交应用程序需要注册Apple Developer Program,该程序需要付费。如何提交您的应用以下步骤介绍了一种将应用程序提交到Mac App Store的简单方法。但是,这些步骤不能确保您的应用将被Apple批准;您仍然需要阅读Apple的Subm.翻译 2020-10-23 15:01:24 · 1299 阅读 · 0 评论 -
Electron.js指南——Windows应用商店指南
Windows应用商店指南在Windows 10中,良好的旧win32可执行文件有了新的同级文件:Universal Windows Platform。新.appx格式不仅启用了许多新的强大API(如Cortana或Push Notifications),而且还通过Windows应用商店简化了安装和更新。微软开发了一种工具,可以将Electron应用程序.appx打包为软件包,从而使开发人员可以使用新应用程序模型中的某些功能。本指南说明了如何使用它-以及Electron AppX软件包的功能和局限.翻译 2020-10-23 15:01:18 · 905 阅读 · 0 评论 -
Electron.js指南——Snapcraft指南
Snapcraft指南(Ubuntu软件中心及更多)本指南提供有关如何为任何Snapcraft环境(包括Ubuntu软件中心)打包Electron应用程序的信息。背景和要求Canonical与更广泛的Linux社区一起致力于解决该snapcraft项目中的许多常见软件安装问题。快照是容器化的软件包,其中包括必需的依赖项,自动更新以及可以在所有主要Linux发行版上运行而无需进行系统修改。有三种创建.snap文件的方法:1)使用electron-forge或electron-bui..翻译 2020-10-23 15:01:11 · 597 阅读 · 0 评论 -
Electron.js指南——Electron支持
Electron支持寻找支持如果您有安全方面的顾虑,请参阅安全文档。如果您正在寻找编程帮助,问题的答案或与使用Electron的其他开发人员进行讨论,则可以在以下位置与社区进行交互:electroncategory on the Atom forums #atom-shellchannel on Freenode #electronchannel onAtom's Slack electron-ru(Russian) electron-br(Brazilian Po...翻译 2020-10-23 15:01:05 · 629 阅读 · 0 评论 -
Electron.js指南——应用分发
应用分发要使用Electron分发您的应用,您需要对其打包并重新命名。最简单的方法是使用以下第三方打包工具之一:electron-forge electron-builder electron-packager这些工具将协助您完成可分发的Electron应用程序所需的所有步骤,例如打包应用程序,为可执行文件重新命名,设置正确的图标以及创建安装程序(可选)。手动分发您还可以选择手动准备好要分发的应用程序。下面概述了执行此操作所需的步骤。要使用Electron分发您的应用程序,您.翻译 2020-10-23 15:00:59 · 515 阅读 · 0 评论 -
Electron.js指南——自动化测试
使用自定义驱动程序进行自动化测试要为您的Electron应用程序编写自动化测试,您将需要一种“驱动”应用程序的方法。Spectron是一种常用的解决方案,可让您通过WebDriver模拟用户操作。但是,也可以使用节点的内置IPC-over-STDIO编写自己的自定义驱动程序。自定义驱动程序的好处是,与Spectron相比,它需要的开销更少,并且可以将自定义方法公开给测试套件。要创建自定义驱动程序,我们将使用Node.js的child_processAPI。测试套件将产生Electron进程,然后..翻译 2020-10-20 10:16:34 · 2401 阅读 · 0 评论 -
Electron.js指南——DevTools扩展
DevTools扩展Electron支持Chrome DevTools扩展程序,该扩展程序可用于扩展devtools的功能,以调试流行的Web框架。如何加载DevTools扩展本文档概述了手动加载扩展程序的过程。您也可以尝试使用electron-devtools-installer这个第三方工具,直接从Chrome WebStore下载扩展程序。要在Electron中加载扩展程序,您需要在Chrome浏览器中下载扩展程序,找到其文件系统路径,然后通过调用BrowserWindow.a..翻译 2020-10-20 10:12:30 · 1252 阅读 · 0 评论 -
Electron.js指南——在Headless CI系统上进行测试(Travis CI,Jenkins)
在Headless CI系统上进行测试(Travis CI,Jenkins)基于Chromium,Electron需要显示驱动器才能起作用。如果Chromium找不到显示驱动程序,Electron将无法启动-因此将不执行任何测试,无论您如何运行它们。因此,在Travis,Circle,Jenkins或类似系统上测试基于Electron的应用程序需要一些配置。本质上,我们需要使用虚拟显示驱动程序。配置虚拟显示服务首先,安装Xvfb。这是一个虚拟的帧缓冲区,实现了X11显示服务器协议-它在内存.翻译 2020-10-20 10:09:42 · 426 阅读 · 0 评论 -
Electron.js指南——测试使用Selenium和WebDriver
使用Selenium和WebDriver从ChromeDriver-WebDriver for Chrome:WebDriver是一个开源工具,可用于跨多种浏览器自动测试Web应用程序。它提供了导航到网页,用户输入,JavaScript执行等功能。ChromeDriver是独立的服务器,可为Chromium实现WebDriver的有线协议。它是由Chromium和WebDriver团队的成员开发的。设置SpectronSpectron是官方支持的Electron ChromeDri.翻译 2020-10-20 10:05:11 · 1454 阅读 · 0 评论 -
Electron.js指南——调试主进程
调试主进程Electron浏览器窗口中的DevTools只能调试在该窗口(即网页)中执行的JavaScript。要调试在主要过程中执行的JavaScript,您将需要使用外部调试器,并使用--inspect或--inspect-brk开关启动Electron。命令行开关使用以下命令行开关之一来启用主进程的调试:--inspect=[port]Electron将在指定port的端口上侦听V8检查器协议消息,需要在此端口上连接外部调试器。默认port值为5858。elec...翻译 2020-10-20 09:57:45 · 550 阅读 · 0 评论 -
Electron.js指南——应用程序调试
应用程序调试每当您的Electron应用程序没有按照您希望的方式运行时,一系列调试工具可能会帮助您发现编码错误,性能瓶颈或优化机会。渲染进程Chromium Developer Toolset是调试单个渲染器进程的最全面的工具。它适用于所有的渲染过程,包括的实例BrowserWindow,BrowserView以及WebView。您可以通过在实例的openDevTools()上调用API以编程方式打开它们webContents:const { BrowserWindow } = r..翻译 2020-10-20 09:55:42 · 1375 阅读 · 0 评论 -
Electron.js指南——辅助功能
辅助功能提供辅助应用程序很重要,并且我们很高兴为Devtron和Spectron提供功能,并为开发人员提供了使他们的应用程序更好地适合所有人的机会。Electron应用程序中的可访问性问题与网站类似,因为它们最终都是HTML。但是,对于Electron应用程序,您无法使用在线资源进行可访问性审核,因为您的应用程序没有指向审核员指向的URL。这些功能将这些审核工具带到您的Electron应用程序中。您可以选择使用Spectron将审核添加到测试中,也可以在DevTools中使用Devtron来使.翻译 2020-10-20 09:43:19 · 492 阅读 · 0 评论 -
Electron.js指南——Web嵌入Electron
Web嵌入Electron如果要将Web内容(第三方)嵌入到Electron中BrowserWindow,则可以使用三个选项:<iframe>标签,<webview>标签和BrowserViews。每个选项提供的功能略有不同,在不同情况下很有用。为了帮助您在这两者之间进行选择,本指南将说明两者的区别和功能。iframeElectron中的iframe行为类似于在常规浏览器中的iframe。<iframe>页面中的元素可以显示外部网页,前提是其内容安全策略.翻译 2020-10-20 09:33:16 · 2307 阅读 · 0 评论 -
Electron.js指南——屏幕外渲染
屏幕外渲染屏幕外渲染使您可以在位图中获取浏览器窗口的内容,因此可以将其渲染到任何位置,例如在3D场景中的纹理上。Electron中的屏幕外渲染使用与Chromium Embedded Framework项目类似的方法。可以使用两种渲染方式,并且只有脏区域才可以通过,'paint'以提高效率。渲染可以停止,继续并可以设置帧频。指定的帧速率是一个最高限值,当网页上没有任何事件发生时,则不会生成任何帧。最大帧速率为60,因为在此之上没有好处,只有性能损失。注意:屏幕外窗口始终创建为无框架窗口。...翻译 2020-10-20 09:33:07 · 1544 阅读 · 0 评论 -
Electron.js指南——本地文件拖放
本地文件拖放总览某些类型的操作文件的应用程序可能希望支持操作系统的本机文件拖放功能。将文件拖放到Web内容中是很常见的,并且被许多网站支持。Electron还支持将文件和内容从Web内容拖出到操作系统的世界中。要在您的应用中实现此功能,您需要调用webContents.startDrag(item)API以响应该ondragstart事件。例从《快速入门指南》中的可用应用程序开始,将以下行添加到index.html文件中:<a href="#" id="d...翻译 2020-10-20 09:32:51 · 1622 阅读 · 0 评论 -
Electron.js指南——在线/离线事件检测
在线/离线事件检测在渲染器过程中可以使用标准HTML5 API的一部分navigator.onLine属性实现联机和脱机事件检测。如果保证任何网络请求都失败,即绝对脱机(与网络断开连接),则该navigator.onLine属性返回false。在其他所有情况下都会返回true。由于所有其他条件都返回了true,因此必须谨防误报,因为我们不能假设true价值必然意味着Electron可以访问互联网。例如,当计算机运行的虚拟化软件具有始终“连接”的虚拟以太网适配器时。因此,如果您确实要确定Electro..翻译 2020-10-19 22:26:00 · 722 阅读 · 0 评论 -
Electron.js指南——键盘快捷键
键盘快捷键配置本地和全局键盘快捷键本地快捷方式您可以使用“菜单”模块配置仅在应用程序集中时才会触发的键盘快捷键。为此,请accelerator在创建MenuItem时指定一个属性。const { Menu, MenuItem } = require('electron')const menu = new Menu()menu.append(new MenuItem({ label: 'Print', accelerator: 'CmdOrCtrl+P'...翻译 2020-10-19 22:19:18 · 1126 阅读 · 0 评论 -
Electron.js指南——自定义Linux桌面启动器操作
自定义Linux桌面启动器操作在许多Linux环境中,可以通过修改.desktop文件将自定义条目添加到其启动器。有关Canonical的Unity文档,请参见向启动器添加快捷方式。有关更通用的实现的详细信息,请参见freedesktop.org规范。Audacious的启动器快捷方式:一般来说,快捷方式是通过为快捷方式菜单中的每个条目提供Name和Exec属性来添加的。Exec用户单击后,Unity将执行该字段。格式如下:Actions=PlayPause;Next;Prev..翻译 2020-10-19 17:36:16 · 533 阅读 · 0 评论 -
Electron.js指南——Windows任务栏
Windows任务栏Electron具有用于在Windows任务栏中配置应用程序图标的API。支持的是一个创建JumpList,自定义缩略图和工具栏,图标覆盖,以及所谓的“闪框”效果,但Electron也使用app的Dock图标来实现类似的跨平台特性最近的文件和应用进展。跳转列表Windows允许应用程序定义自定义上下文菜单,当用户右键单击任务栏中的应用程序图标时,将显示该菜单。该上下文菜单称为JumpList。您可以在TasksJumpList类别中指定自定义操作,如MSDN所...翻译 2020-10-19 17:32:24 · 2624 阅读 · 0 评论 -
Electron.js指南——macOS Dock
macOSDockElectron具有用于在macOS Dock中配置应用程序图标的API。存在一个仅限macOS的API来创建自定义停靠菜单,但是Electron还使用该应用的停靠图标来实现跨平台功能,例如最新文档和应用程序进度。自定义停靠栏通常用于为用户不想为其打开整个应用程序窗口的任务添加快捷方式。Terminal.app的码头菜单:要设置自定义停靠菜单,可以使用app.dock.setMenu仅在macOS上可用的API:const { app, Menu } = r...翻译 2020-10-19 17:25:40 · 558 阅读 · 0 评论 -
Electron.js指南——任务栏上的进度栏
任务栏上的进度栏(Windows,macOS,Unity)在Windows上,可以使用任务栏按钮显示进度栏。这使得窗口能够向用户提供进度信息,而用户不必切换到窗口本身。在macOS上,进度条将显示为停靠图标的一部分。Unity DE还具有类似的功能,可让您在启动器中指定进度条。任务栏按钮中的进度栏:所有这三种情况都由相同的API覆盖-BrowserWindows实例上可用的setProgressBar()方法。用0和1之间的数字来调用它以指示您的进度。如果您有一项长期任务..翻译 2020-10-19 17:22:37 · 985 阅读 · 0 评论 -
Electron.js指南——近期文档
最新文件(Windows和macOS)Windows和macOS分别通过JumpList或停靠菜单提供对应用程序打开的最近文档列表的访问。跳转列表:应用程序停靠菜单:要将文件添加到最新文档中,可以使用app.addRecentDocumentAPI:const { app } = require('electron')app.addRecentDocument('/Users/USERNAME/Desktop/work.type')您可以使用app.c...翻译 2020-10-19 17:16:56 · 455 阅读 · 0 评论 -
Electron.js指南——通知
通知(Windows,Linux,macOS)这三个操作系统都为应用程序提供了向用户发送通知的方法。Electron方便地允许开发人员使用HTML5 Notification API发送通知,使用当前运行的操作系统的本机通知API来显示通知。注意:由于这是HTML5 API,因此仅在渲染器过程中可用。如果要在主要过程中显示通知,请签出“通知”模块。const myNotification = new Notification('Title', { body: 'Lorem Ipsum ..翻译 2020-10-19 17:11:16 · 1128 阅读 · 0 评论 -
Electron.js指南——样板和CLIs
样板和CLIElectron开发不受限制-没有开发,构建,打包或发布电子应用程序的“真正方法”。通常在npm的单独软件包中可以找到Electron的附加功能,包括构建时和运行时的附加功能,使开发人员可以构建应用程序并构建所需的管道。如此高的模块化和可扩展性确保了与Electron合作的所有开发人员,无论团队规模大小,在开发生命周期中的任何时间都不会受到限制。但是,对于许多开发人员而言,社区驱动的样板或命令行工具之一可能会大大简化编译,打包和发布应用程序的过程。样板vs CLI一个样板..翻译 2020-10-19 16:06:43 · 173 阅读 · 0 评论 -
Electron.js指南——快速入门指南
快速开始Electron是一个框架,使您可以使用JavaScript,HTML和CSS创建桌面应用程序。然后可以将这些应用程序打包以直接在macOS,Windows或Linux上运行,或通过Mac App Store或Microsoft Store分发。通常,您使用每个操作系统的特定原生应用程序框架为操作系统(OS)创建桌面应用程序。Electron使得您可以使用已知技术来编写应用程序。先决条件在使用Electron处理之前您需要安装Node.js的。我们建议您安装最新的LTS或Cur.翻译 2020-10-19 15:52:26 · 2764 阅读 · 0 评论 -
打造自己的集成开发工作站(四)——webpack, typescript eslint
通过前三篇文章对微前端有了一些了解,并初步学习了一些single-spa概念;从这篇开始手动搭建一个基于single-spa的微前端项目框架。使用的主要技术包括:single-spa,webpack,typescript等,后期随着需要进行调整。项目主要分为两部分:view,model;view使用single-spa管理,主要负责视图与交互逻辑;model使用typescript编写,实现相应用户操作,简单数据逻辑,后台通信,统一会话管理等;项目名称:nuts-waxberry使用npm.原创 2020-08-13 23:10:45 · 610 阅读 · 0 评论 -
打造自己的集成开发工作站(一)
工作有时间了,由于知识点比较杂,好多不常用的也忘记的差不多了,利用业余时间做一个方便开发的工作栈,目标是集成优秀的开源工具,在同一个web界面下资源信息互通,方便开发使用,减少搭建时间,工具之间的切换。第一步:首先要有一个统一的界面,不同的开源工具实现的方式不尽相同,就需要一个可以挂在现有主流前端框架的js套路或框架;参考后台的微服务,前段有没有相似的技术呢?搜索到微前端,相对可落地的方案介绍如下:https://segmentfault.com/a/1190000021547996 https:转载 2020-06-24 22:27:33 · 438 阅读 · 0 评论 -
Yarn包管理器-CLI命令(一)
https://www.yarnpkg.com/en/docs/cli/Yarn提供了丰富的命令行命令集,可帮助您了解Yarn软件包的各个方面,包括安装,管理,发布等。虽然此处按字母顺序提供了所有可用的命令,但一些更流行的命令是:yarn add:添加一个要在当前软件包中使用的软件包。 yarn init:初始化程序包的开发。 yarn install:安装在package.json文...翻译 2020-01-17 13:49:14 · 3579 阅读 · 0 评论 -
Yarn包管理器-工作流程
https://www.yarnpkg.com/en/docs/yarn-workflow将包管理器引入您的项目会引入围绕依赖项的新工作流。Yarn尽最大努力避免出现问题,并使此工作流程的每个步骤都易于理解。关于基本工作流程,您应该了解以下几点:创建一个新项目 添加/更新/删除依赖 安装/重新安装依赖项 使用版本控制(例如git) 持续集成无论您是否已有代码存储库/目录,还是...翻译 2020-01-17 10:04:30 · 405 阅读 · 0 评论 -
Yarn包管理器-入门
https://www.yarnpkg.com/en/docs/getting-startedYarn是您的代码的包管理器。它使您可以与世界各地的其他开发人员一起使用和共享(例如JavaScript)代码。Yarn可以快速,安全且可靠地执行此操作,因此您不必担心。Yarn允许您使用其他开发人员的解决方案来解决不同的问题,从而使您更轻松地开发软件。如果遇到问题,您可以报告问题或做出贡献,而当...翻译 2020-01-16 17:10:05 · 369 阅读 · 0 评论 -
Windows 下使用 NVM
在Linux下使用nvm进行node版本切换非常好用,在Windows下百度搜到Windows版本,使用也非常简单。首先到https://github.com/coreybutler/nvm-windows/releases下载,国内原因,样式没了,解压到安装目录C:\Program.Files\nvm-windows-1.1.7以管理员身份运行CMD,导航到C:\Prog...原创 2019-12-23 15:06:28 · 331 阅读 · 0 评论 -
NODE.JS(二)框架
语言的流行首先取决于自身,然后是相关的开源社区,或更明确的是框架的丰富性。所以我们安装完成后就要搜索一下最受欢迎的有哪些,我们首先需要明确需求,我们要开发包括网站前端与后端,最好是都用一个框架,能够回避回调地狱的优先考虑。百度一下后,参考了http://www.yyyweb.com/5028.htmlhttp://cnodejs.org/topic/58eee565a92d341e48cfe7fc...转载 2018-04-15 18:41:54 · 398 阅读 · 0 评论 -
NODE.JS(一)入坑
Node.js 入坑有点晚,由于公司业务性质都是复杂的业务场景,Node.js异步的写法实在不适宜这种场景,最近在研究的工业4.0需要快速搭建Demo,Node恰好能够很好的胜任,所以就奋不顾身的投入到Node怀抱中,这里只是对工作中知识的一些疏理,不适宜作为初学者的学习材料,经作为参开使用。Node.js是什么?Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环...转载 2018-04-15 18:19:12 · 305 阅读 · 0 评论