用途:在已可用的基础 Mac 开发环境上叠加 Web 栈组件,包括快速包管理器、以 brew services 方式运行的本地数据库和 API 客户端。
主要能力与用法:
- pnpm:brew install pnpm,再执行 pnpm --version。选 brew 而非 corepack,因为 corepack 自 Node 25+ 起不再随 Node 发布(Node 24 LTS 仍有);brew 版不受 Node 版本影响,且在含 packageManager 字段的仓库中会遵循锁定版本。
- PostgreSQL(固定主版本):PG=postgresql@17;brew install "$PG";brew services start "$PG"。版本化 formula 为 keg-only,需将 $(brew --prefix $PG)/bin 追加到 ~/.zshrc 的 PATH。验证:psql --version、psql -d postgres -c 'select version();'。
- Redis:brew install redis;brew services start redis;redis-cli ping 应返回 PONG。
- API 客户端:brew install --cask bruno,或 brew install --cask postman。
- 验证:brew services list 应显示 postgresql@17 与 redis 为 started。
适用场景:本地全栈 Web 开发,需要包管理器、本地数据库与 API 调试工具时。
限制与注意:不适用于 Node/Python 版本管理(属 language-runtimes,且为 pnpm 前置条件)、容器化数据库(属 docker-on-mac)、项目内 npm install/数据库结构/SQL 工作、数据库 GUI 工具(属 mac-dev-apps)。前置条件为已安装 brew,pnpm 还需 Node 运行时。固定 Postgres 主版本,跨主版本升级需 pg_upgrade,不可盲目 brew upgrade;未经明确同意与备份不得卸载或升级已有版本化 postgres。brew services 数据库默认绑定 localhost,不应改为 0.0.0.0。PATH 追加使用 grep 守卫写入 ~/.zshrc。启动数据库前先盘点已有实例(brew services list、lsof -nP -iTCP:5432 -sTCP:LISTEN、brew list --versions)。常见问题:psql 找不到是 keg-only PATH 所致;裸 psql 报 database "<user>" does not exist 属默认库怪癖,可 createdb "$USER" 或 psql -d postgres;服务报错可查 brew services info 与日志,常见原因是崩溃后残留 postmaster.pid。Homebrew 未版本化 postgresql 别名跟随最新主版本,故需固定。Redis 的 AGPL 许可对本地开发通常无影响,但组织政策可能禁止,可用 valkey 替代。