首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Electron实践笔记

查看 Desktop 的源码过程,发现他们对 number, boolean 类型的数据的 get, set 进行了简单的封装。使用起来非常方便,这里贴一下对于 boolean 型数据的处理。...但是 fs.watch 这个 API 工程上不是可以开箱即用的,有许多兼容问题和一些 bug。...参考 Desktop,他们的日志基于日志库:winston[13]。 main 进程和 renderer 进程都提供了全局 log 对象,接口都是一致的。...winston.transports.Console 和 winston.transports.DailyRotateFile 分别用于将日志信息打印终端控制台和存储磁盘文件。... main 进程和 renderer 进程启动时分别引入日志安装模块。因为 log 方法都是暴露在全局,因此只需要在进程启动时引入一次即可。同时 TS 环境还需要添加 log 方法的类型声明。

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Electron实践笔记

查看 Desktop 的源码过程,发现他们对 number, boolean 类型的数据的 get, set 进行了简单的封装。使用起来非常方便,这里贴一下对于 boolean 型数据的处理。...但是 fs.watch 这个 API 工程上不是可以开箱即用的,有许多兼容问题和一些 bug。...参考 Desktop,他们的日志基于日志库:winston[13]。 main 进程和 renderer 进程都提供了全局 log 对象,接口都是一致的。...winston.transports.Console 和 winston.transports.DailyRotateFile 分别用于将日志信息打印终端控制台和存储磁盘文件。... main 进程和 renderer 进程启动时分别引入日志安装模块。因为 log 方法都是暴露在全局,因此只需要在进程启动时引入一次即可。同时 TS 环境还需要添加 log 方法的类型声明。

93910

[每日前端夜话0xBB]

级别和上下文 通过查看日志查找错误时,如果日志没有提供足够的信息,你就必须回到代码,那将非常令人沮丧。因此在记录时我们应该传递足够的上下文 例如。... Node.Js ,控制台的实现方式与浏览器不同,控制台模块使用 console.log 时会在 stdout 打印消息,如果使用 console.error 它将打印到 stderr。...console.log、console.debug 和 console.info 都在 stdout 打印,因此我们将无法关闭或打开调试和及信息。...在上一节我们讨论了控制台的一些缺陷,让我们列出 Winston 提供的一些重要功能: 级别: Winston 提供了几组日志级别,并且还将级别打印为日志的一部分,这可以使我们能够集中式仪表板过滤日志...动态更改日志级别:我们将在生产环境程序启用警告和错误,并可以根据需要将日志级别更改为调试并返回错误,而无需重新启动程序。Winston 具有这种开箱即用的功能。

48210

Node.js 应用最佳实践:日志

级别和上下文 通过查看日志查找错误时,如果日志没有提供足够的信息,你就必须回到代码,那将非常令人沮丧。因此在记录时我们应该传递足够的上下文 例如。... Node.Js ,控制台的实现方式与浏览器不同,控制台模块使用 console.log 时会在 stdout 打印消息,如果使用 console.error 它将打印到 stderr。...console.log、console.debug 和 console.info 都在 stdout 打印,因此我们将无法关闭或打开调试和及信息。...在上一节我们讨论了控制台的一些缺陷,让我们列出 Winston 提供的一些重要功能: 级别: Winston 提供了几组日志级别,并且还将级别打印为日志的一部分,这可以使我们能够集中式仪表板过滤日志...动态更改日志级别:我们将在生产环境程序启用警告和错误,并可以根据需要将日志级别更改为调试并返回错误,而无需重新启动程序。Winston 具有这种开箱即用的功能。

1.2K20

JSDoc ,一个可替代 TypeScript 的方案?

: "Winston", email: "winston@user.com", postLike: [18, 53, 98], friends: ['Favour', 'Jane'] } 输入函数(参数...它用于创建到指定URL的链接,而 @tutorial 标签用于将用户引导到生成的文档的相对教程链接。 创建模块JSDoc创建模块可以使用文件顶部的 @module 标签。...您可以通过以下步骤从JSDoc代码生成这些文件: 项目文件夹安装 tsd-jsdoc npm install tsd-jsdoc 生成 .d.ts 文件 对于一个单独的文件 jsdoc -t node_modules.../tsd-jsdoc/dist -r our/jsdoc/file/path.js 对于多个文件 jsdoc -t node_modules/tsd-jsdoc/dist -r file1.js file2...对于整个文件夹 jsdoc -t node_modules/tsd-jsdoc/dist -r src 它将所有类型的文件合并成一个 out/types.d.ts 文件。

47910

Apache Tez0.7编译笔记

创建一个 dist目录,否则最后,会报一个dist目录不存在的错误,导致编译失败 另外需要注意的是,tez-ui编译的时候,需要大量下载npm nodejs相关的包,如果没有下载可以执行 npm...install xxx 进行下载安装, 除以之外还有一个错误,就是有些依赖模块,会报一个 error use strict model 异常,导致tez-ui无法正常 编译通过,解决办法,下载低版本的依赖包...hawk npm install qs@5.2 npm install hawk@0.6.1 博客地址:http://qindongliang.iteye.com/ 最后看以下,编译过程,...fs-write-stream-atomic glob graceful-fs has-unicode hawk hoek hosted-git-info http-signature...tough-cookie traverse tunnel-agent tweetnacl uid-number umask unique-filename unpipe user-home

1.1K80

2024年Node.js精选:50款工具库集锦,项目开发轻松上手(四)

34、Winston:Node.js应用的多功能日志库 软件开发,日志记录是不可或缺的一环,它帮助开发者监控应用的运行状态,及时发现和解决问题。...无论是开发过程还是在生产环境Winston都能提供稳定可靠的日志服务。...39、JS-YAML:JavaScript的YAML解析和字符串化工具 YAML作为一种人类可读的数据序列化格式,配置文件、数据交换等场景中被广泛使用。它以其简洁明了的结构赢得了开发者的喜爱。...js-yaml库则为JavaScript提供了YAML数据的解析和字符串化功能,使得Node.js应用整合YAML数据变得轻而易举。...潜在的错误:对于不太常见或自定义的文件格式,有可能会误识别其MIME类型。 总之,mime-types包是处理文件类型Node.js应用不可或缺的工具。

15710

NPM 7:这才算是真正的更新

它将在一个通用的 node_modules 文件夹安装所有这些工作区所需的所有内容。因此,重复的依赖项不会占用多份空间。...有了这些命令和文件夹结构后,你根目录级别的 node_modules 文件夹安装了所有三个模块(及其必需的依赖项)。但是,其层次结构内的任何文件都能访问所有这三个文件。...winston = require("winston") const flat = require("flat") app.get('/', (req, res) => { res.send('Hello...如果该模块已经安装并且是正确的版本,则不要执行任何操作。 如果找不到模块或版本存在冲突,则向开发人员显示一条消息,警告他们这一事实,此外什么也不做。...但现在我们有了 Arborist,它可以分析整个树并考虑对等依赖,如果出现冲突它就会显示对应的错误信息,并且中止流程。

1.7K30

Node入门教程(6)第五章:node 模块化(上)模块化演进

通过fs模块同步读取js文件并编译执行。 .node。通过C/C++进行编写的Addon。通过dlopen方法进行加载。 .json。读取文件,调用JSON.parse解析加载。 参考源码: ?.../bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js 这使得程序本地化它们的依赖,避免它们产生冲突...'/Users/flydragon/Desktop/work/gitdata/node_modules', '/Users/flydragon/Desktop/work/node_modules...', '/node_modules' ] } 每个模块,module 的自由变量是一个指向表示当前模块的对象的引用。...通常是完全解析后的文件名。 module.loaded| boolean |模块是否已经加载完成,或正在加载。 module.loaded| boolean |模块是否已经加载完成,或正在加载

70540

node Express 框架

\test\Express\node_modules\.recently_updates.txt) √ All packages installed (51 packages installed from...> 可以查看到有一个node_modules目录,该目录保存的是npm包 一些还需要安装的模块 body-parser 一个node的中间件 用于处理JSON,等和URL的编码的处理 https://www.npmjs.com...一共是一块安装了3个模块 继续使用淘宝源 PS C:\Users\mingm\Desktop\test\Express> cnpm install body-parser --save √ Installed...(^o^)/ 解析静态文件 Express使用了中间件 express.static中间件设置静态文件 事实上是一个http服务器外加一个fs模块完成封装的 目录结构如下 - Express // 站点文件...返回的body,将会在req对象上添加一个新的对象,该对象为body。其中的值为字符串和数组,此对象会包含键值对。

5.2K20

搭建一套支持TS的Node运行环境

安装依赖 开源社区中有一个名为ts-node的库,它可以运行时解析ts,执行node的API,读完它的文档后,我们知道了项目中安装它的方法,如下所示: npm install -D typescript...5) { code: 'ERR_UNKNOWN_FILE_EXTENSION' } 百度这个报错时,基本上就一篇文章抄来抄去的 image-20210814150819838 这篇文章说是因为找不到导入的模块.../ts-node-utils/node_modules/ts-node/dist/esm.js:4:12) at transformSource (/Users/likai/Documents/...WebStorm是支持这个操作的,只需简单的配置即可,步骤如下: package.json配置一条脚本运行命令 { "ts-node": "ts-node" } 打开Run/Debug...Configurations面板 image-20210814155153643 弹出的面板,添加一条执行命令。

1.9K20

webpack5 + webpack-chain 构建一个大型应用系列 2(附 vscode 跟 prettier 配置)

您安装了 eslint 插件后,需要在设置设置 "eslint.autoFixOnSave": true,这样就可以保存时自动修复 eslint 的错误了 当然您可能只在这个项目中使用了 eslint...autoFixOnSave 保存时自动修复 * @param validate vue添加错误提示 */ "eslint.alwaysShowStatus": true, "eslint.autoFixOnSave...{js,jsx}": ["webpack-box lint eslint", "git add"] } } 课题 13:配置别名 我们工作,如果一个文件需要被 copy 到另外一个目录下,那么这个文件的引用依赖就可能发生路径错误.../index.js"; 这样本地是不会报错的,但是当你用 Jenkins 上线的时候,就会报错找不到 ....* @param autoFixOnSave 保存时自动修复 * @param validate vue添加错误提示 */ "eslint.alwaysShowStatus"

3.7K51

Node.js快速入门

Node 应用程序,执行异步操作的函数将回调函数作为最后一个参数, 回调函数接收错误对象作为第一个参数。...2)require方法解析文件名之后,优先检查模块是否原生模块列表。...3)当文件模块缓存不存在,而且不是原生模块的时候,Node.js会解析require方法传入的参数,并从文件系统中加载实际的文件 require方法接受以下几种参数的传递: 1)http、fs、path...后面的部分,因此你可以手动解析后面的内容作为GET请求的参数。 node.jsurl模块的parse函数提供了这个功能。...Windows ,命令行解析应当能兼容cmd.exe) timeout,数字,超时时间(默认: 0) maxBuffer,数字, stdout 或 stderr 中允许存在的最大缓冲(二进制

11.2K10

深度解读 Vite 的依赖扫描?

实际上,Vite 会判断模块的实际路径,是否 node_modules :实际路径 node_modules模块会被预构建,这是第三方模块实际路径不在 node_modules模块,证明该模块是通过文件链接...解析过程,设置为 external JS 模块 ....因为一个 html 类型文件,允许有多个 script 标签,多个内联的 script 标签,其内容无法处理成一个 JS 文件 (因为可能会有命名冲突等原因)既然无法将多个内联 script,就只能将它们分散成多个虚拟模块...解析过程,设置为 external JS 模块 ....最后对这部分的源码进行了解析:最复杂的就是 html 类型模块的处理,需要使用虚拟模块;当遇到 bare import 时,需要判断是否 node_modules 的才记录依赖,然后 external

1.1K20

深度解读 Vite 的依赖扫描?

实际上,Vite 会判断模块的实际路径,是否 node_modules : • 实际路径 node_modules模块会被预构建,这是第三方模块 • 实际路径不在 node_modules模块...,将裸依赖保存到 deps 对象,设置为 external 其他 JS 无关的模块 less文件 解析过程,设置为 external JS 模块 ....因为一个 html 类型文件,允许有多个 script 标签,多个内联的 script 标签,其内容无法处理成一个 JS 文件 (因为可能会有命名冲突等原因) 既然无法将多个内联 script,就只能将它们分散成多个虚拟模块...,将裸依赖保存到 deps 对象,设置为 external 其他 JS 无关的模块 less文件 解析过程,设置为 external JS 模块 ....最后对这部分的源码进行了解析: • 最复杂的就是 html 类型模块的处理,需要使用虚拟模块; • 当遇到 bare import 时,需要判断是否 node_modules 的才记录依赖,然后

87420

Webpack最佳实践

配置后可使用 webpack 命令尝试打包,若报错找不到命令可 npm i webpack -g 全局安装后再打包,打包成功后会输出到项目根目录下的 dist 目录。...看下面配置之前先了解splitChunks的几个属性: priority:抽离代码的优先级,值越高越先被抽离,防止某些模块在前面的模块抽离完了后面没被抽离到,本例是防止 vendor 模块被 common...async:异步模块 all:可以存在异步和非异步模块 minSize:生成 chunk 的最小体积,此处为方便测试设置为 0 minChunks:拆分前必须共享模块的最小 chunks 数,当前代码块引用多少次才被抽离...配置后可使用 webpack 命令尝试打包,若报错找不到命令可 npm i webpack -g 全局安装后再打包,打包成功后会输出到项目根目录下的 dist 目录。...看下面配置之前先了解splitChunks的几个属性: priority:抽离代码的优先级,值越高越先被抽离,防止某些模块在前面的模块抽离完了后面没被抽离到,本例是防止 vendor 模块被 common

3.2K20
领券