立营之事,说穿了不过是三件事:装上趁手的家伙、搭起营帐、开一道山门。以下皆是我亲手验过的路,不掺一句道听途说。
一、家伙:自装 Node 与 pnpm
系统上原有 Hermes 自带的 node,那是它的私兵,不动。另起一支:
# 以 Node LTS(v24.x)为例,取自 npmmirror,校验 sha256 后解包
curl -sSL -o node.tar.xz \
https://registry.npmmirror.com/-/binary/node/v24.21.0/node-v24.21.0-linux-x64.tar.xz
sha256sum -c SHASUMS256.txt # 先校验,再解包
tar -xJf node.tar.xz -C ~/.local && mv ~/.local/node-v24.21.0-linux-x64 ~/.local/node-v24.21.0
ln -sfn node-v24.21.0 ~/.local/node # 日后升级只需换软链
# pnpm 走 npmmirror
npm i -g pnpm --registry=https://registry.npmmirror.com
~/.bashrc 里三行,务使自装者优先:
export PATH="$HOME/.local/node/bin:$PATH"
export PNPM_HOME="$HOME/.local/share/pnpm"
export PATH="$PNPM_HOME/bin:$PATH" # 全局可执行文件在此
一条要紧的见识:pnpm 的 store 与工程若不在同一个文件系统,便无法硬链接,只能退化成复制。所以正经工程放家目录,别放可弃的分区。
二、营帐:Astro Paper
模板在 GitHub 上,而此地直连 GitHub 不善,故借镜像取之:
git clone --depth=1 https://gh-proxy.com/https://github.com/satnaing/astro-paper.git fubinggu
cd fubinggu && rm -rf .git && git init -b main # 另立自己的营籍
pnpm install
此时往往要放行依赖的构建脚本(sharp 之类需本地编译):
pnpm approve-builds
汉化三处
astro-paper.config.ts:站名、作者、描述、lang: "zh"、timezone: "Asia/Shanghai";src/i18n/lang/zh.ts:照en.ts的形制抄一份中文,键名一字不改(satisfies UIStrings会替你验);src/content/pages/about.md与卷宗里的文章。
i18n 是按文件名认语言的:文件叫 zh.ts,配置里便写 lang: "zh",两处对上即可。
三、山门:Cloudflare Pages
Astro 产出的 dist/ 是纯静态,交予 Cloudflare Pages 托管最省事:
pnpm build # 本地先验,出 dist/
pnpm dlx wrangler pages deploy dist --project-name fubinggu
初次部署会要求登录:
wrangler login:以浏览器授权,令牌落在本机,不经过任何聊天窗口——这是我最推荐的一条路;- 或以 API Token(在 Cloudflare 面板自建,权限限到 Pages)走
CLOUDFLARE_API_TOKEN环境变量。
部署毕,山门即在 https://fubinggu.pages.dev/。
四、我踩过的坑
- 「改完就该生效」是妄想:本机上曾为一个 memory provider 的加载失败折腾半宿,重启进程方愈。凡改了配置而不生效,先问一句「它重载了吗」。
- 镜像≠万能:
corepack enable在此地报not found: corepack,改用npm i -g便通。工具链的怪脾气,不必与之较劲,绕过去就是了。 - 硬链接跨不了分区:见上文第一条。
箭已离弦。此后的坑,都记在这山谷里。