前端实现 gzip 文件与文本压缩的方法

1 Node.js 中的 zilb 库与文件压缩 zlib 支持的三种压缩算法:gzip、deflate、brotli。基础用法示例: import zlib from \'zlib\'; function zip(str, encoding = \'gzip\') { str = typeof str === \'string\' ? str : JSON.stringify(str); if (encod
前端实现 gzip 文件与文本压缩的方法

大型项目升级至 webpack5 实践与总结

这是一篇历时一年多的 webpack5 升级式实践总结。最早在 2020年4月份 webpack5 处于 beta 阶段时即开始相关的项目升级尝试,后续过程中又间断的进行了几次尝试,均因自编插件和第三方插件的兼容性等原因一直停留在不同的版本分支中。 2020-04:webpack5@5.0.0-beta.15+ 2020-07:webpack5@5.0.0-beta.21+ 2020-10:web
大型项目升级至 webpack5 实践与总结

webpack 构建结果移除 use strict 严格模式

在一些特殊需求中,需要使用到严格模式下被禁止而导致报错的语法,此时需要避免构建的结果包含 use strict。 1 编译构建时不添加 use strict 1.1 babel-loader 设置 strictMode=false babel-loader 通过 @babel/helper-module-transforms 处理模块的转换,它提供一个配置参数 strictMode 用于指定是否编
webpack 构建结果移除 use strict 严格模式

Electron 自编译应用崩溃(crash)调试分析方法

1. Electron 中的应用崩溃(crash) 如果仅是 Javascript 引起的异常,可以在应用逻辑中监听相关 Error 类型的事件并进行处理。通过在监听 crashed 相关事件,可以在应用内监听到应用崩溃并给出响应: app.on(\'gpu-process-crashed\', (_event, killed) => {}); app.on(\'renderer-process-
Electron 自编译应用崩溃(crash)调试分析方法

使用 node.js 发送基于 STMP 与 MS Exchange 邮件的方法

本文主要介绍 node.js 发送基于 STMP 协议和 MS Exchange Web Service(EWS) 协议的邮件的方法。文中所有参考代码均以 TypeScript 编码示例。 1 基于 STMP 协议的 node.js 发送邮件方法 提到使用 node.js 发送邮件,基本都会提到大名鼎鼎的 Nodemailer 模块,它是当前使用 STMP 方式发送邮件的首选。 基于 NodeMa
使用 node.js 发送基于 STMP 与 MS Exchange 邮件的方法

React 函数组件之 useImperativeHandle 导出接口的 TypeScript 类型声明

使用 React Hooks 定义函数式组件,当需要对外暴露接口方法时,需要结合使用 React.forwardRef 和 React.useImperativeHandle 实现。 在基于 TypeScript 的开发模式下,如何正确的实现相关的类型定义和引用呢? 参考以下示例进行了解: /** 对外暴露接口的约束类型 */ interface LzwmeInputHandles { focus
React 函数组件之 useImperativeHandle 导出接口的 TypeScript 类型声明

基于 NodeJs 实现结合 RSA 和 AES 加密算法的消息交换加密传输

敏感消息交换对正确性和安全性都有比较强的要求。 使用消息摘要算法对消息体计算和验证摘要,可以防止消息传输过程中被篡改为非法消息值;使用加密算法加密消息体,可以防止消息传输过程中被拦截并读取。二者结合则可以实现较强的安全性消息交换。 1 保证消息交换正确性 消息传输过程中可能被中间人篡改。比如 A 发送消息转账给 B,中间人在消息转发过程中进行了拦截,解密消息体并篡改为转账给 C,而且篡改转账额度,
基于 NodeJs 实现结合 RSA 和 AES 加密算法的消息交换加密传输

TypeScript 获取函数的参数类型、返回值类型

在使用 TypeScript 开发的过程中,类型定义是一个必要但又繁琐的过程。 当需要对一个第三方库方法的入参进行单独定义,而该库又没有导出该方法的入参类型时,就需要获取该方法的入参类型。 例如,有如下示例函数,我们想获取其参数类型和返回值类型,那么具体应该如何实现呢。 示例函数: function test(lzwme: string, idx: number) { return { lzwme
TypeScript 获取函数的参数类型、返回值类型

使用 npm-check-updates 快速升级前端项目 package.json 依赖版本

通过使用 npm outdated 和 npm update 命令,可以对前端项目中的第三方依赖版本进行分析与升级。但他们可用的参数较少,有些过于简单。 在 Microsoft Visual Code 编辑器中,当鼠标停留在依赖行并保持不动时,它会去查询该行依赖的最新版本。这在对单个的第三方依赖版本升级上会有比较简单快捷的辅助。 对于依赖众多的中大型项目,其第三方依赖包可能多达上百个。当希望进行大
使用 npm-check-updates 快速升级前端项目 package.json 依赖版本