Pupeteer 入门  [draft]

Pupeteer 入门 pupeteer 是 Chrome 的无头浏览器版本, 可以通过 API 操作 Chrome 浏览器操作, 本文通过实现爬虫来阐述简要使用方式 启动参数调优 puppeteer 占用资源很大, 需要禁用诸多特性来使其占用降低, 关闭不必要的资源消耗: ref: https://pptr.dev/api/puppeteer.puppeteerlaunchoptions 推荐如下参数: --no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-accelerated-2d-canvas --no-first-run --no-zygote --single-process --disable-gpu const browser = await puppeteer.launch({ headless: 'new', args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--no-first-run', '--no-zygote', '--single-process', '--disable-gpu' ] }); 获取数据 多线程获取 节省资源开销, 在获取所需数据后终止后续请求

<span title='2024-04-22 00:00:00 +0000 UTC'>2024-04-22</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;51 words&nbsp;·&nbsp;Kreedzt

VSCode 插件 RWR Mod Tool 开发历程(1)

立项缘由 Running with rifles(以下简称 RWR) 的 mod 开发目前存在诸多问题: 人形绑骨麻烦 多人开发时 XML 格式不统一 缺少文件引用检查 各 xml 文件定义属性作用未知 注册方式容易遗漏 … VSCode 作为大多数 Mod 开发者使用的工具, 起草 VSCode 插件目的是逐步解决如上问题. 已知的 VSCode 插件可解决内容: 多人开发时 XML 格式不统一: 通过统一格式化处理 各 xml 文件定义属性作用未知: 通过定义模板命令 / 代码片段处理 缺少文件引用检查: 通过扫描文件引用 key 来查找工作空间所有文件名引用, 未找到抛出警告 本系列文章逐步尽可能解决所有已知问题 本文主要描述第一版本的开发内容 项目启动 新注册 VSCode 插件项目, 按照 VSCode extension 官方教程即可: https://code.visualstudio.com/api/get-started/your-first-extension 该教程会引导注册一个 “命令”, 命令在 VSCode 中用以 Ctrl(or command)-Shift-P 启动的命令 目标 作为第一版的插件, 目标仅定以下内容: 注册命令 创建武器模板 创建护甲模板 插件打包及发布 注册激活条件 我们不需要在任意文件结构的目录都激活插件, 仅需要在 mod 目录即可....

<span title='2024-01-08 00:00:00 +0000 UTC'>2024-01-08</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;586 words&nbsp;·&nbsp;Kreedzt

VSCode 插件 RWR Mod Tool 开发历程(2)  [draft]

概述 本文主要基于第一篇文档进行的插件迭代更新版本, 版本目标为 0.0.2 目标 作为第2版的插件, 当前目标为内容: XML 文件引用扫描, 不存在则抛出警告 分析 RWR 的文件引用是通过 XML 标签特殊属性值来寻找的文件引用, 如 weapon 寻找 file, hud_icon 寻找 hud_icon 等. 可通过读取文件 API + 诊断 API 来实现 通过 language 上的 createDiagnosticCollection 创建诊断实例, 标记目标代码位置即可: API 文档 注册事件 通过注册文件保存 / 文件创建 / 文件删除 / 工作区变更 / 文件重命名回调函数来确保文件扫描触发时机正确性: API 参考 context.subscriptions.push( vscode.workspace.onDidSaveTextDocument((e) => { console.log('onDidSaveTextDocument: startXmlCheck'); startXmlCheck(); }), vscode.workspace.onDidCreateFiles((e) => { console.log('onDidCreateFiles: startXmlCheck'); startXmlCheck(); }), vscode.workspace.onDidDeleteFiles((e) => { console.log('onDidDeleteFiles: startXmlCheck'); startXmlCheck(); }), vscode....

<span title='2024-01-08 00:00:00 +0000 UTC'>2024-01-08</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;468 words&nbsp;·&nbsp;Kreedzt

vitest 项目集成 codecov

项目配置 vitest 配置 不需要特殊配置, 增加 coverage 配置即可: import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { // 注意: 新版 vitest 默认 watch: true, 需要修改为 false, 否则命令会始终不停止 watch: false, // ... coverage: { include: ['src'], all: true, provider: 'istanbul', reporter: ['text', 'json', 'html'], } }, }); npm 命令 为使其 bash 脚本运行报告, 需要添加 npm script: { "scripts": { "coverage": "vitest --coverage" } } 配置 github actions 参考: https://docs.codecov.com/docs/github-2-getting-a-codecov-account-and-uploading-coverage#github-actions 配置 github actions 为配置 ci 的触发规则, codecov 配置需要额外配置...

<span title='2023-07-09 00:00:00 +0000 UTC'>2023-07-09</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;242 words&nbsp;·&nbsp;Kreedzt

nodejs npm 在 windows 下的问题

nodejs npm 在 windows 下的问题 用户名包含空格时, 执行 npx 报错, 路径不对问题 BUG见: create-reat-app issue 复现步骤: C:\Users\Vaidehi Shah\Desktop\MERN-ShoppingList\client> npx create-react-app . 输出: Error: EPERM: operation not permitted, mkdir 'C:\Users\Vaidehi' 很明显, 以上用户名被截取了 解决方案: 首先打开 CMD(命令指示符), 进入到用户名上一级目录下, 执行 dir /x 命令 # 通常是如下目录 C:\Users>dir /x 驱动器 C 中的卷没有标签。 卷的序列号是 F818-9B1A C:\Users 的目录 2020/11/10 19:24 <DIR> . 2020/11/10 19:24 <DIR> .. 2021/07/24 20:08 <DIR> KENZHA~1 Ken Zhao 2021/07/08 22:37 <DIR> Public 0 个文件 0 字节 4 个目录 722,590,040,064 可用字节 以上是我的用户名: Ken Zhao 左侧就是简写名称: KENZHA~1....

<span title='2023-02-02 00:00:00 +0000 UTC'>2023-02-02</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;98 words&nbsp;·&nbsp;Kreedzt