写在前面

欢迎来到「踩坑日志 · 冷门工具食用指南」。

这个分类专门用来记录那些网上教程极少、大佬们也懒得手把手教的冷门软件或工具。

因为很多开发以及软件属于国外项目,国内资料比较匮乏,每次折腾都像是在雷区里反复横跳。

所以我打算把这些踩坑经验总结归档,一是为了警示自己,防止日后重蹈覆辙;二是用输入倒逼输出,把零散的解决思路系统化;三是给自己留条后路,万一哪天忘了怎么弄,至少还能顺着这篇笔记找到“回家的路”。

本期索引

这次我准备在 Windows 环境下部署包管理利器,所以花了几天时间安装完后,总结了相关流程以及安装逻辑,总结了一篇 pnpm 安装指南。如果你也曾在配置它时遇到过各种莫名其妙的报错,不妨跟着这篇日志一起排雷。

正文开始

🚀 pnpm :Windows 环境下安装的最佳实践

在 Windows 系统上安装 pnpm,我最推荐的方式是通过 npmCorepack 进行安装。

⚠️ 安全提示:尽量避免使用独立脚本安装,因为该方式极易被 Windows Defender 拦截,导致安装失败或需要繁琐的安全配置(踩坑)。

📊 安装方式对比(以下两种方法都尝试过)

安装方式推荐指数前提条件特点
npm 全局安装⭐⭐⭐⭐⭐Node.js ≥ v22.13最简单直接,官方首推
Corepack 启用⭐⭐⭐⭐Node.js ≥ v16.13Node.js 自带工具,便于版本管理

🛠️ 方法一:通过 npm 安装(推荐)

这是最简单、最不容易出错的方式。

1. 执行安装命令

打开终端(PowerShell 或 CMD),输入以下命令并回车:

npm install -g pnpm

2. 验证安装

安装完成后,运行以下命令检查版本:

pnpm --version

成功标志:如果终端返回类似 12.x.x 的版本号,说明安装成功!


🔗 方法二:通过 Corepack 安装

Corepack 是 Node.js 自带的包管理器管理工具,适合需要管理多版本 pnpm 的场景。

1. 更新 Corepack

npm install --global corepack@latest

2. 启用 pnpm

corepack enable pnpm

3. 验证安装

pnpm --version

⚠️ 常见问题:npm warn allow-scripts 警告

在安装过程中,你可能会看到满屏的 warn,例如:

added 2 packages in 30s
npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts:
npm warn allow-scripts pnpm@12.3.4 (preinstall: node install.js; postinstall: node install.js)
npm warn allow-scripts
npm warn allow-scripts Run `npm install -g --allow-scripts=pnpm` to allow these scripts once...

🛑 不是报错!
只要第一行显示 added 2 packages,说明包已经下载并安装成功。这只是一个安全提示,不是安装失败。

🤔 为什么会出现这个警告?

开发者官网上说这是新版 Node.js/npm 的零信任安全模式在起作用。为了防止供应链攻击,npm 默认拦截了全局安装包的初始化脚本。而 pnpm 需要执行少量脚本来配置自身环境,因此被拦截并弹出警告。

✅ 解决方案:配置全局白名单

由于是全局安装工具,最稳妥且一劳永逸的方法是将其加入白名单。请复制并执行:

npm config set allow-scripts=pnpm --location=user

💡 效果:执行后,npm 会记住:”以后只要是全局安装 pnpm,就自动允许它运行脚本”,无需再次手动批准。

🔍 最终验证

配置完成后,再次运行:

pnpm --version

如果返回版本号,说明你的 pnpm 已经完美安装并配置完毕!🎉


📝 总结 完整操作示例

以下是一个从安装到解决警告的完整终端交互流程:

# 1. 全局安装 pnpm
sy@YOURPC MINGW64 ~/Desktop/bolg
$ npm install -g pnpm
added 2 packages in 30s
npm warn allow-scripts 1 package has install scripts not yet covered by allowScripts:
npm warn allow-scripts pnpm@12.3.4 (preinstall: node install.js; postinstall: node install.js)
npm warn allow-scripts
npm warn allow-scripts Run `npm install -g --allow-scripts=pnpm` to allow these scripts once, or `npm config set allow-scripts=pnpm --location=user` to allow them for all global installs.

# 2. 配置全局白名单(解决警告)
sy@YOURPC MINGW64 ~/Desktop/bolg
$ npm config set allow-scripts=pnpm --location=user

# 3. 验证版本
sy@YOURPC MINGW64 ~/Desktop/bolg
$ pnpm --version
12.3.4

🚀 下一步:升级项目引擎

既然 pnpm 已经准备就绪,建议将你现有的项目(如 thousand-sunny Astro 项目)的包管理器从 npm 切换为 pnpm

💎 为什么要切换?

  • 极速安装:依赖安装速度远超 npm。
  • 节省空间:通过硬链接和符号链接,极大减少硬盘占用。
  • 严格依赖:避免幽灵依赖,让项目结构更健康。