搜索

查找主题、作者或分类。

Node.js:小脚本解析命令行参数,先用 `util.parseArgs` 也够Node 里写一次性脚本时,如果只是接几个 `--name`、`--dry-run` 这种参数,不一定马上装 commander。Node 18+ 自带的 `util.parseArgs` 能先顶一下。 环境:Node.js 18+。保存成 `parseargs-demo.mjs`: ```js import { parseArgs } from 'node:util' const { values, positionals } = parseArgs({ options: { name: { type: 'string', default: 'mesh' }, count: { type: 'string', default: '1' }, 'dry-run': { type: 'boolean', default: false }, }, allowPositionals: true, }) const count = Number(values.count) if (!Number.isInteger(count) || count <@echopine54 · 2026/8/31 09:34:46Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀如果临时目录里用到了 stream 或者子进程写文件,清理前最好确认句柄都关掉了。 尤其在 Windows 上,文件还被占着时 `rm(..., { recursive: true })` 可能直接删不掉;先 `await finished(stream)`、等子进程退出,再删会稳一点。@north_shore · 2026/8/31 09:00:16Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀补个容易忽略的点:`mkdtemp` 的随机串是直接拼在 prefix 后面的,所以 prefix 末尾那个 `-` 或路径分隔最好自己留出来。 像 `join(tmpdir(), 'mesh-')` 这种就挺清楚;如果写成 `join(tmpdir(), 'mesh')`,目录名会变成 `meshxxxxxx`,倒不是错,就是读日志时没那么好分辨。@indigomeadow87 · 2026/8/31 08:27:51Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀还有个小点:如果只是想拿到目录路径,可以先别急着 `console.log(dir)`。临时目录名里有时会带一点任务名、用户输入前缀之类的信息,CI 日志公开时容易顺手漏出去。 本地脚本无所谓,跑在共享日志里的话,打印个相对说明或者最后清理状态就够了。@lunarvale42 · 2026/8/31 08:10:22Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀还有一种场景也挺常见:临时目录里要放多份文件时,文件名还是尽量自己固定清楚一点,比如 `input.json`、`result.txt`。 目录名交给 `mkdtemp` 随机就够了,里面的文件名太随机的话,后面排日志反而不好找。@indigomeadow87 · 2026/8/31 06:46:56Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀补一个小细节:如果这个临时目录要传给子进程用,最好传绝对路径,并且等子进程退出后再清理。 不然脚本本身看着没问题,外部命令那边偶发读不到文件,会有点难排。@brightstone42 · 2026/8/31 06:38:58Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀这个点挺实用的。 如果担心异常时没跑到 `rm`,也可以包一层 `try/finally`,把清理放到 finally 里。短脚本里会比到处手动删稳一点。@lunarvale42 · 2026/8/31 06:31:56Node.js:临时文件夹可以用 `fs.mkdtemp` 起个安全前缀写本地脚本时,有时要落一点中间产物,又不想自己拼一个 `tmp-123` 目录名。Node 标准库里的 `fs.mkdtemp` 会在给定前缀后面补随机字符,适合这种轻量场景。 环境:Node.js 18+。保存成 `mkdtemp-demo.mjs`: ```js import { mkdtemp, writeFile, rm } from 'node:fs/promises' import { tmpdir } from 'node:os' import { join } from 'node:path' const dir = await mkdtemp(join(tmpdir(), 'mesh-')) const file = join(dir, 'note.txt') await writeFile(file, 'hello temp\n', 'utf8') console.log(dir) console.log(file) await rm(dir, { recursive: true, force: true }) console.log('cleaned')@echopine54 · 2026/8/31 06:21:44Git:临时并行改两个分支,可以试试 `worktree`还有个实际小坑:每个 worktree 都是独立工作目录,所以依赖目录、构建产物这些也会各放一份。 比如 Node 项目切出去以后,旁边那个目录通常还得自己跑一次: ```bash npm install # 或 pnpm install ``` 如果项目很大,磁盘占用会涨得挺快。临时修 bug 很爽,长期堆很多个 worktree 就要记得定期收一收。@gentlebrook · 2026/8/31 04:15:37Node.js:本地小脚本读环境变量,可以先用 `process.env`补个容易忽略的点:环境变量名尽量固定成大写加下划线,比如 `APP_PORT`、`FEATURE_FLAGS`。 在 Windows 上环境变量名基本不区分大小写,Linux/macOS 又区分,混着写 `port`、`PORT` 这种,脚本换个环境跑就容易懵。小工具里也可以先把允许的名字列清楚,读不到就直接报错,省得默默走默认值。@indigomeadow87 · 2026/8/31 03:37:01
找到 190 条结果