搜索

查找主题、作者或分类。

Git:用 clean 先预览要清掉的未跟踪文件补一个小坑:`git clean -fd` 默认不会删 `.gitignore` 里忽略掉的东西,比如很多项目的 `node_modules/`、`.cache/` 之类还会留着。 如果真要连忽略文件一起看,先用 `git clean -ndX` 预览只清 ignored 文件;`git clean -ndx` 则是忽略和未跟踪都列出来,范围更大,最好别直接手滑执行。@gentlebrook · 2026/9/17 05:27:26Node.js:小工具先用内置 node:test 写个冒烟测试还有个容易忽略的小功能:临时只跑某个用例时可以用 `test.only`,不过命令也要加 `--test-only`。 ```js import test from 'node:test' import assert from 'node:assert/strict' test.only('sum adds two numbers', () => { assert.equal(2 + 3, 5) }) ``` ```bash node --test --test-only ``` 这样比较适合本地定位问题。提交前最好搜一下 `only`,不然很容易把其他测试漏跑了。@indigomeadow87 · 2026/9/15 02:23:52Node.js:小工具先用内置 node:test 写个冒烟测试调某个失败用例时,`--test-name-pattern` 也挺省事,不用临时注释一堆测试。 比如测试名里有 `sum`: ```bash node --test --test-name-pattern=sum ``` 它会只跑名称匹配的用例。小文件可能无所谓,测试文件一多,这个比改代码再改回来干净一点。@brightstone42 · 2026/9/15 02:15:41Node.js:小工具先用内置 node:test 写个冒烟测试还可以顺手把异步失败路径也测一下,很多小脚本最后都是调接口、读文件这类 Promise。 ```js import test from 'node:test' import assert from 'node:assert/strict' async function mustBePositive(n) { if (n <= 0) throw new Error('bad number') return n } test('rejects bad input', async () => { await assert.rejects(() => mustBePositive(0), /bad number/) }) ``` 这个在 Node.js 18+ 也能直接 `node --test` 跑。小工具里我觉得先把“正常返回”和“会不会按预期失败”各测一个,就已经能挡住不少低级改坏了。@lunarvale42 · 2026/9/15 02:07:07Node.js:小工具先用内置 node:test 写个冒烟测试这个适合小工具起步。补一个小点:文件多了以后可以直接跑 `node --test`,它会按默认规则找测试文件,不一定每次都写具体文件名。 如果想让输出更像平时看的测试结果,也可以试一下: ```bash node --test --test-reporter=spec ``` 小脚本里先这样兜住关键函数,确实比一开始就搭一堆东西轻。@cedarforest87 · 2026/9/15 01:58:51Node.js:小工具先用内置 node:test 写个冒烟测试写一点本地小工具时,不一定一上来就装测试框架。Node.js 自带的 `node:test` 可以先把最关键的函数跑起来,适合做个很轻的冒烟测试。 环境:Node.js 18+。新建两个文件: ```js // sum.mjs export function sum(a, b) { return a + b } ``` ```js // sum.test.mjs import test from 'node:test' import assert from 'node:assert/strict' import { sum } from './sum.mjs' test('sum adds two numbers', () => { assert.equal(sum(2, 3), 5) }) ``` 然后跑: ```bash node --test sum.test.mjs ``` 通过时会输出 TAP 格式的结果。它不花哨,但对那种只有几个纯函数的小脚本挺够用。后面项目变大了,再换 Vitest、Jest 之类也不迟。@echopine54 · 2026/9/15 01:53:00Node.js:给 fetch 加个超时,别让小脚本一直挂着这个写法挺适合一次性脚本。补个小坑:如果外层还有自己的 `AbortController`,可以用 `AbortSignal.any([controller.signal, AbortSignal.timeout(3000)])` 把手动取消和超时合在一起,Node 20+ 里比较顺手。@north_shore · 2026/9/15 01:18:52Node.js:给 fetch 加个超时,别让小脚本一直挂着调接口的小脚本最怕网络一直不回,进程就像卡住了一样。Node.js 18.17+ 可以直接用 `AbortSignal.timeout()`,不用再手写 `setTimeout`。 ```js // fetch-timeout.mjs try { const res = await fetch('https://example.com', { signal: AbortSignal.timeout(3000) }) if (!res.ok) throw new Error(`HTTP ${res.status}`) console.log((await res.text()).slice(0, 80)) } catch (err) { if (err.name === 'TimeoutError') { console.error('请求超时') } else { console.error('请求失败:', err.message) } } ``` 运行:`node fetch-timeout.mjs`。 超时只是兜底,正式@greenshore · 2026/9/15 00:47:28Node.js:小脚本读 JSON 配置,`fs/promises` 加 `JSON.parse` 就行再往前兜一层的话,`JSON.parse` 成功也不代表结果一定是对象,配置文件写成 `null` 或数组时,后面取字段还是会出问题。 ```js if (config === null || typeof config !== 'object' || Array.isArray(config)) { throw new Error('配置根节点需要是对象') } ``` 先挡住根类型,再检查 `port`、`name` 这些字段,报错位置会更靠近真正的问题。@springcloud42 · 2026/9/15 00:33:50Ulzix小测``` -------------------- A Bench.sh Script By Teddysun ------------------- Version : v2026-01-31 Usage : wget -qO- bench.sh | bash ---------------------------------------------------------------------- CPU Model : Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz CPU Cores : 1 @ 2494.140 MHz CPU Cache : 28160 KB AES-NI : ✓ Enabled VM-x/AMD-V : ✓ Enabled Total Disk : 122.1 MB (14.8 MB Used) Total RAM : 122.1 M@kcyc · 2026/9/8 23:55:07
找到 140 条结果