pnpm 常用指令速查(本地开发与构建)

987 字
5 分钟
pnpm 常用指令速查(本地开发与构建)

📖 前置须知#

  • 本站强制使用 pnpm(项目里配了 preinstall: only-allow pnpm,用 npm/yarn 会被拦下)
  • 环境要求:Node ≥ 22.23,pnpm 11 系(package.json 里锁了 packageManager
  • 换机器/新克隆仓库后,先 pnpm install 装依赖,再跑下面命令

一、指令速查表#

指令作用什么时候用
pnpm install安装依赖新克隆仓库 / 首次使用 / 报缺依赖
pnpm dev起本地开发服务器(localhost<4321>,改代码热更新)日常写文章/改配置预览
pnpm build生产构建,产物输出到 dist/发布前必跑,确保能构建成功
pnpm preview本地预览 dist/ 构建产物想模拟线上效果时
pnpm new-post 文件名脚手架:建一篇新文章写新文章(见下)
pnpm new-dynamic 内容脚手架:建一条碎碎念发碎碎念
pnpm checkastro check 类型与内容集合检查改代码后查错误
pnpm type-checkTypeScript 类型检查(tsc)同上,更严格
pnpm lint / pnpm format代码规范检查/自动格式化改过 .ts/.astro 源码后
pnpm astro <子命令>直接调 Astro CLI一些高级操作

需要联网才能完成的#

pnpm install(装依赖)、pnpm new-post 里的中文转拼音(内置依赖)、build 时可能的封面数据拉取(按配置,网络不好会慢/跳过)。


二、内容脚手架#

建文章 pnpm new-post <文件名>#

Terminal window
pnpm new-post my-first-post # 或中文名也行
pnpm new-post guide/xxx # 支持子目录,自动建目录

它会在 src/content/posts/ 建好文件,自动补 .md 扩展名、填好今天的日期和一套 frontmatter 模板:

---
title: my-first-post # 记得改成真正标题
published: 2026-09-07 # 自动填今天
description: ''
tags: []
category: ''
draft: false
---

生成的 slug/title 只是模板,真正控制显示的是 frontmatter 里的 title;网址由文件名决定(见 内容发布全流程)。

发碎碎念 pnpm new-dynamic 内容#

Terminal window
pnpm new-dynamic 今天的第一条碎碎念!
pnpm new-d # new-dynamic 的别名

自动按当前时间命名文件、写进 src/content/dynamic/、填好 published。细节见 碎碎念维护指南


三、构建流水线(build 到底做了什么)#

pnpm build 不是单纯打包,是一整串流水线(按顺序执行):

① 生成 GitHub 仓库卡片数据 → generate-github-card-data
② 生成图片占位 LQIP → generate-lqips
③ 拉取封面数据(按配置) → generate-vndb-covers
④ Astro 主构建 → astro build(产出 dist/)
⑤ 清理无用看板娘资源 → prune-pio-assets
⑥ 字体子集化 → subset-fonts
⑦ 压缩内联脚本 → minify-inline-scripts
⑧ 生成站内搜索索引 → run-pagefind(Pagefind)

所以要理解两件事:

  1. build 比较慢是正常的(要跑 8 步),别以为卡住了
  2. 有几步(LQIP、字体、搜索索引)的产物是要提交进仓库的——本地跑过 build 后若提示这些文件有改动,记得一并 git add,否则线上构建用的数据可能旧

四、本地发布自检流程(每次发布前)#

Terminal window
pnpm dev # ① 起本地,浏览器看效果(新文章在 posts 列表/系列里)
# —— 满意了 ——
pnpm build # ② 生产构建,确保零报错通过(可选,改动纯内容时可用 dev 代替)
git add . && git commit -m "新增:xxx" && git push # ③ 上线

只加/改 Markdown 内容时,dev 预览够了;动了配置/源码.ts.astro、组件)建议 pnpm check + pnpm build 都过一遍再推。


⚠️ 常见坑#

现象原因解决
Only pnpm is allowed用了 npm/yarnpnpm
build 报 Node 版本错Node 太老升到 ≥ 22.23
页面图不显示,本地是好的图片没走图床R2 图床运营规范
build 后一堆文件「变了」流水线重新生成了数据正常,一起 commit

✅ 速记#

  • 日常两条:pnpm dev 看效果,git 三连上线
  • 写文章 pnpm new-post、发碎碎念 pnpm new-dynamic,让脚手架帮你填日期和模板
  • 发布前:纯内容用 dev 预览;动了源码就 check + build 都过
  • build 是 8 步流水线,慢是正常的;生成的数据要记得 commit

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
pnpm 常用指令速查(本地开发与构建)
https://hecloud.top/posts/guide/pnpm-commands-cheatsheet/
作者
贺小云
发布于
2026-09-07
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
贺小云
热爱技术与折腾的博客 Dancing with uncertainty. 与不确定性共舞
公告
出于成本考虑,贺云已全面转型Serverless架构
分类
标签
碎碎念
站点统计
文章
68
分类
6
标签
38
总字数
46,536
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0