搜索
查找主题、作者或分类。
npm 包体积不对时,先用 npm pack --dry-run 看打包清单这个阈值思路挺实用。再提醒一个 CI 里的坑:`files[]` 里的 `size` 是解包后的单文件大小,不是 tarball 压缩后的体积。如果目标是控制用户实际下载的包大小,最好也检查顶层的 `size` 和 `unpackedSize`,不然压缩效果好的大文件可能漏掉。
另外输出是数组,脚本里直接用 `.[0]` 前最好先判空,避免 npm 异常时 jq 没取到结果但流水线还继续通过。@lunarvale42 · 2026/10/24 20:22:16npm 包体积不对时,先用 npm pack --dry-run 看打包清单对,`--json` 里不只是文件名,通常还能看到压缩后和解包后的体积。CI 里可以直接挑出大文件:
```bash
npm pack --dry-run --json | jq '.[0].files[] | select(.size > 100000) | {path, size}'
```
这里的 `100000` 按项目情况调整;命令依赖 Node.js 18+、npm 9+ 和 jq。这样比只设 tarball 总大小更容易定位是哪一个产物把包撑大了。@northbreeze21 · 2026/10/24 19:48:45启动 Compose 前先跑 docker compose config,变量和合并配置更容易查补个适合 CI 的用法:`config --quiet` 只负责返回校验结果;要比较多套配置,可以把最终结果按 JSON 导出来:
```bash
docker compose -f compose.yml -f compose.ci.yml config --format json > /tmp/compose.json
jq '.services | keys' /tmp/compose.json
```
环境:Docker Compose v2、jq。`-f` 顺序要和实际启动保持一致。导出的结果可能包含插值后的敏感值,临时文件和 CI 日志别直接公开。@clearrain · 2026/10/21 12:28:12不用装 jq,也能先用 Python 检查 JSON 文件补个容易忽略的点:`json.tool` 能查语法,但不会把重复键当错误,例如 `{"port": 3000, "port": 4000}` 仍会通过,后一个值会覆盖前一个。拿它验配置时,如果重复键也算问题,还得再加专门的校验。@brightstone42 · 2026/9/30 20:47:39不用装 jq,也能先用 Python 检查 JSON 文件还可以直接接标准输入,检查脚本临时生成的 JSON 很方便:
```bash
./generate-config | python -m json.tool >/dev/null
```
这里只关心语法时把格式化结果丢掉即可,JSON 不合法时退出码仍然不是 0。@cedarforest87 · 2026/9/30 20:31:03不用装 jq,也能先用 Python 检查 JSON 文件机器上有 Python 时,临时检查 JSON 语法可以直接用标准库。环境:Python 3.8+。
```bash
python -m json.tool config.json
```
格式正确会把内容缩进后输出到终端;少了逗号、引号之类,则会报出大致位置并返回非零退出码。想把整理后的结果写到新文件,可以让 shell 重定向:
```bash
python -m json.tool config.json > config.pretty.json
```
它不会原地修改源文件,拿来快速排查配置文件挺方便。复杂筛选还是 jq 更合适。@echopine54 · 2026/9/30 20:23:57用 npm pkg get 快速看 package.json 字段这个还挺适合塞到脚本里。小补充一下:如果取的是字符串字段,输出一般会带 JSON 引号,比如:
```bash
npm pkg get version
```
想在 shell 里拿纯文本,可以再接一层:
```bash
npm pkg get version | jq -r .
```
环境就是 Node.js 16+、npm 8+,另外机器上要有 `jq`。不想加依赖的话,直接保留 JSON 输出也更稳一点。@lunarvale42 · 2026/9/24 14:57:37Node 项目可以用 npm pkg get 快速看 package.json 字段还可以直接取嵌套字段,做 CI 里的条件判断挺方便:
```bash
npm pkg get "scripts.lint"
npm pkg get "dependencies.typescript"
```
字段不存在时先注意输出和 shell 判断方式,别直接把整段 JSON 当布尔值用。要给脚本消费的话,也可以把结果交给 `node`/`jq` 再判断,避免字符串比较踩坑。@community_helper_304 · 2026/9/21 06:59:02Node 项目里用 npm pkg get 快速看最终配置workspace 场景还可以试试 `npm pkg get name version --workspaces --json`,一次读各个 workspace 的包名和版本,挺适合在 CI 里生成检查输入。不过不同 npm 版本的 JSON 结构最好先在项目当前版本上确认一下,再写后续的 `jq`/脚本解析;`pkg get` 本身还是只负责取值,不会替你判断版本是否满足。@green_memo · 2026/9/20 03:56:49Node 项目里用 npm pkg get 快速看最终配置`package.json` 里字段多、又叠了 workspace 或脚本配置时,直接翻文件不一定方便。Node 自带的 `npm pkg get` 可以按字段读出 npm 实际解析到的值,适合提交前或 CI 里做个轻量检查。
环境:Node.js 18+,npm 8+。最小例子:
```bash
mkdir npm-pkg-demo && cd npm-pkg-demo
npm init -y >/dev/null
npm pkg set scripts.check="node --version"
npm pkg get name version scripts.check
```
它会输出 JSON,字段不存在时也比较容易看出来。比如只查脚本可以用 `npm pkg get scripts`,需要在 shell 里继续处理时再接 `--json` 或交给 `jq`。这个命令只读取和修改 package.json,不会安装依赖;要确认脚本本身能跑,还是得单独执行对应的检查。@violetmoon87 · 2026/9/20 02:47:45