<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>开发环境 on Jiangwan&#39;s Blog</title>
        <link>https://jiangwan.ink/categories/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/</link>
        <description>Recent content in 开发环境 on Jiangwan&#39;s Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sat, 21 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jiangwan.ink/categories/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Git 基础配置与 VS Code 协同指南</title>
        <link>https://jiangwan.ink/p/git-vscode-collaboration-guide/</link>
        <pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://jiangwan.ink/p/git-vscode-collaboration-guide/</guid>
        <description>&lt;p&gt;在日常的开发与项目协作中，一套顺畅的 Git 工作流是不可或缺的基建，能大幅提升开发和团队协作效率。本文旨在梳理 Git 的基础环境配置，演示如何利用 VS code，将 Git 的底层空间概念通过可视化操作的方式，实现代码的拉取与推送。&lt;/p&gt;
&lt;h2 id=&#34;一-基础环境准备&#34;&gt;一、 基础环境准备
&lt;/h2&gt;&lt;p&gt;进行版本控制和代码编写，首先需要准备好 Git 和编辑器环境。&lt;/p&gt;
&lt;h3 id=&#34;1-git-下载与安装&#34;&gt;1. Git 下载与安装
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;：前往 &lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git 官方网站&lt;/a&gt; 下载安装包，常规情况下一路点击“下一步”保持默认配置即可。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;macOS&lt;/strong&gt;：推荐使用 Homebrew 安装，终端执行 &lt;code&gt;brew install git&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安装完成后，在终端（Terminal 或命令提示符）输入 &lt;code&gt;git --version&lt;/code&gt;，若能正确输出版本号，即代表安装成功。&lt;/p&gt;
&lt;h3 id=&#34;2-vs-code-安装&#34;&gt;2. VS Code 安装
&lt;/h3&gt;&lt;p&gt;前往 &lt;a class=&#34;link&#34; href=&#34;https://code.visualstudio.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Visual Studio Code 官网&lt;/a&gt; 下载对应系统的安装包。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 小提示：Windows 用户在安装向导中，建议勾选“将‘通过 Code 打开’操作添加到 Windows 资源管理器文件/目录上下文菜单”，这样后续在文件夹里右键就能直接用 VS Code 打开项目，非常方便。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;3-全局身份配置&#34;&gt;3. 全局身份配置
&lt;/h3&gt;&lt;p&gt;Git 是分布式版本控制系统，每一次代码提交（Commit）都需要记录是谁完成的。因此，安装后的首要任务是配置全局的用户名 and 邮箱。在终端中执行以下命令（替换为你自己的信息）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.name &lt;span class=&#34;s2&#34;&gt;&amp;#34;Jiangwan&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git config --global user.email &lt;span class=&#34;s2&#34;&gt;&amp;#34;your_email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;💡 命名与邮箱建议：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;公司/团队协作&lt;/strong&gt;：建议 &lt;code&gt;user.name&lt;/code&gt; 使用真实姓名或工号拼音，邮箱使用公司企业邮箱，方便在 GitLab 等内部系统中追溯代码责任人。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;个人开发/开源社区&lt;/strong&gt;：建议使用网名或常用昵称（如 GitHub ID），邮箱与 GitHub/Gitee 注册邮箱保持一致，以便平台正确统计你的提交贡献（绿点）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;二-鉴权打通本地与远程仓库&#34;&gt;二、 鉴权：打通本地与远程仓库
&lt;/h2&gt;&lt;p&gt;要在本地电脑和云端之间传输代码，必须解决权限认证问题。主要有 HTTPS 和 SSH 两种协议。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;为什么开发者更偏爱 SSH 而非 HTTPS？&lt;/strong&gt;
很多公司内部使用 HTTPS 也很顺畅，那是因为 Git Credential Manager 帮你缓存了账号密码或 Token。但从底层体验上，SSH 有几个核心优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网络与代理友好&lt;/strong&gt;：在国内使用 GitHub 时，HTTPS 往往需要频繁配置 Git 代理（&lt;code&gt;http.proxy&lt;/code&gt;），否则极易网络超时。而 SSH 走的是 22 端口，认证机制不同，配置代理规则也更底层且灵活。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性更高且无过期烦恼&lt;/strong&gt;：HTTPS 的 Token 会有过期机制，而 SSH 采用非对称加密的“公钥-私钥”对，只要私钥不泄露，鉴权通道就一直安全有效。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;1-生成-ssh-密钥-推荐-ed25519&#34;&gt;1. 生成 SSH 密钥 (推荐 Ed25519)
&lt;/h3&gt;&lt;p&gt;以往的教程常教大家生成 rsa 密钥，但目前 GitHub 和技术社区更推荐使用 &lt;code&gt;ed25519&lt;/code&gt; 算法。相比 RSA，它生成的密钥更短、生成和验证速度更快，且安全性更高。在终端中运行以下命令，连续按回车键保持默认设置（不需要设置额外密码）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-keygen -t ed25519 -C &lt;span class=&#34;s2&#34;&gt;&amp;#34;your_email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;(注：如果你的旧系统不支持 ed25519，再退回使用 &lt;code&gt;ssh-keygen -t rsa -b 4096 -C &amp;quot;...&amp;quot;&lt;/code&gt; 即可)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;2-配置公钥至托管平台&#34;&gt;2. 配置公钥至托管平台
&lt;/h3&gt;&lt;p&gt;密钥生成后，包含公钥（&lt;code&gt;.pub&lt;/code&gt; 结尾）和私钥。我们需要将公钥提供给托管平台。查看并复制公钥内容：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat ~/.ssh/id_ed25519.pub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将终端打印出的字符复制。登录 GitHub，进入 Settings -&amp;gt; SSH and GPG keys -&amp;gt; New SSH key，将其粘贴并保存。&lt;/p&gt;
&lt;h3 id=&#34;3-连接测试&#34;&gt;3. 连接测试
&lt;/h3&gt;&lt;p&gt;在终端输入以下命令验证是否配置成功：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh -T git@github.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果看到类似 &lt;code&gt;Hi [Username]! You&#39;ve successfully authenticated...&lt;/code&gt; 的提示，说明鉴权通道已打通。&lt;/p&gt;
&lt;h2 id=&#34;三-参与协作加入-github-组织-organization&#34;&gt;三、 参与协作：加入 GitHub 组织 (Organization)
&lt;/h2&gt;&lt;p&gt;在实际的兴趣小组开发或开源协作中，我们经常需要先加入一个 GitHub 组织，才能获取内部代码仓库的协同权限。&lt;/p&gt;
&lt;h3 id=&#34;1-接受组织邀请&#34;&gt;1. 接受组织邀请
&lt;/h3&gt;&lt;p&gt;组织管理员会通过你的 GitHub 用户名或注册邮箱发送邀请。留意你的邮箱邮件，或者直接登录 GitHub，点击右上角的通知小铃铛（Notifications），找到邀请信息并点击 &amp;ldquo;Join&amp;rdquo; 即可。加入后，你可以在个人主页左侧的 Organizations 列表中看到该组织。&lt;/p&gt;
&lt;h3 id=&#34;2-踩坑提示拉取与推送权限&#34;&gt;2. 踩坑提示：拉取与推送权限
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：加入组织后，你通常可以直接 Clone 组织内的代码。但如果在后续 Push 代码时遇到 &lt;code&gt;Permission denied&lt;/code&gt; 或 &lt;code&gt;403 Forbidden&lt;/code&gt; 错误，这通常是因为管理员尚未给你分配目标仓库的 Write（写入）权限。
&lt;strong&gt;解决办法&lt;/strong&gt;：直接联系组织的管理员，请他们将你所在的 Team 或个人账号的仓库权限从 Read 提升至 Write 即可。&lt;/p&gt;
&lt;h2 id=&#34;四-vs-code-协同实战核心流转&#34;&gt;四、 VS Code 协同实战：核心流转
&lt;/h2&gt;&lt;p&gt;加入组织并搞定权限后，我们就可以正式开始写代码了。在进行 Git 操作前，我们需要先理清 Git 的四个核心空间概念。&lt;/p&gt;
&lt;h3 id=&#34;1-核心概念前置与空间映射&#34;&gt;1. 核心概念前置与空间映射
&lt;/h3&gt;&lt;p&gt;以下是 Git 底层流转概念与 VS Code 可视化操作的对应关系：&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  flowchart LR
    subgraph LocalEnv [本地电脑环境]
        direction LR
        Workspace[工作区&amp;lt;br&amp;gt;Working Directory]
        Index[暂存区&amp;lt;br&amp;gt;Staging Area]
        Local[本地仓库&amp;lt;br&amp;gt;Local Repository]
    end
    Remote[远程仓库&amp;lt;br&amp;gt;Remote Repository]

    Workspace -- &amp;#34;git add&amp;lt;br&amp;gt;(点击 + 号)&amp;#34; --&amp;gt; Index
    Index -- &amp;#34;git commit&amp;lt;br&amp;gt;(点击 提交)&amp;#34; --&amp;gt; Local
    Local -- &amp;#34;git push&amp;lt;br&amp;gt;(点击 同步更改)&amp;#34; --&amp;gt; Remote
    Remote -. &amp;#34;git pull&amp;lt;br&amp;gt;(自动/手动 拉取)&amp;#34; .-&amp;gt; Workspace
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;工作区 (Working Directory)&lt;/strong&gt;：你在编辑器里直接看到和修改的代码文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;暂存区 (Staging Area)&lt;/strong&gt;：一个缓冲地带，用于挑选并确定下一次要提交哪些修改（相当于“购物车”）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;本地仓库 (Local Repository)&lt;/strong&gt;：代码在本地的完整历史版本记录（相当于“本地结账”）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;远程仓库 (Remote Repository)&lt;/strong&gt;：托管在云端的代码库（相当于“云端备份”）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-完整工作流演示&#34;&gt;2. 完整工作流演示
&lt;/h3&gt;&lt;p&gt;无论你偏好可视化点击还是敲击命令行，底层流转逻辑是一致的。以下提供两种方式供你参考：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: 拉取项目 (Clone)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code 方式&lt;/strong&gt;：&lt;code&gt;Ctrl+Shift+P&lt;/code&gt; 唤出命令面板，输入 &lt;code&gt;Git: Clone&lt;/code&gt;，粘贴组织仓库的 SSH 地址。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 命令&lt;/strong&gt;：终端执行 &lt;code&gt;git clone &amp;lt;你的SSH仓库地址&amp;gt;&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 2: 编写代码 (Modify)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code 方式&lt;/strong&gt;：在工作区正常修改。VS Code 侧边栏“源代码管理”会提示文件被更改（M 或 U）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 命令&lt;/strong&gt;：随时可通过 &lt;code&gt;git status&lt;/code&gt; 命令查看当前有哪些文件被修改或未被追踪。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 3: 暂存更改 (Stage)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code 方式&lt;/strong&gt;：点击文件右侧的 &lt;code&gt;+&lt;/code&gt; 号。这就是把文件从“工作区”推入“暂存区”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 命令&lt;/strong&gt;：终端执行 &lt;code&gt;git add .&lt;/code&gt;（暂存当前目录下所有更改），或指定单个文件 &lt;code&gt;git add &amp;lt;文件名&amp;gt;&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 4: 提交版本 (Commit)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code 方式&lt;/strong&gt;：在面板输入框填写提交信息（如 &lt;code&gt;feat: 新增登录接口&lt;/code&gt;），点击 “提交”。代码正式存入本地仓库。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 命令&lt;/strong&gt;：终端执行 &lt;code&gt;git commit -m &amp;quot;feat: 新增登录接口&amp;quot;&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 5: 推送云端 (Push)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VS Code 方式&lt;/strong&gt;：点击 “同步更改 (Sync Changes)”，将本地仓库的新版本同步到远程仓库。 &lt;em&gt;(注：VS Code 的同步按钮实际上包含了 Pull 和 Push 两个动作)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git 命令&lt;/strong&gt;：终端执行 &lt;code&gt;git push&lt;/code&gt;（若需先合并远程最新代码，可先执行 &lt;code&gt;git pull&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;五-进阶分支管理与子仓库&#34;&gt;五、 进阶：分支管理与子仓库
&lt;/h2&gt;&lt;p&gt;随着项目复杂度提升，你必然会用到分支与子仓库，这两者在团队协作中极为重要。&lt;/p&gt;
&lt;h3 id=&#34;1-分支的新建与合并-branch--merge&#34;&gt;1. 分支的新建与合并 (Branch &amp;amp; Merge)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;为什么需要分支？&lt;/strong&gt;
为了不污染主线代码（&lt;code&gt;main&lt;/code&gt; / &lt;code&gt;master&lt;/code&gt;），开发新功能或修复 Bug 时，我们通常会拉取一个独立的分支，开发测试完毕后再合并回去。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;新建与切换&lt;/strong&gt;：在 VS Code 左下角点击当前分支名（如 &lt;code&gt;main&lt;/code&gt;），在弹出的菜单中选择 “创建新分支 (Create new branch)”，输入新分支名（如 &lt;code&gt;feat/user-login&lt;/code&gt;）即可自动切换。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合并分支&lt;/strong&gt;：假设你在新分支开发完毕并提交了。先在左下角切换回 &lt;code&gt;main&lt;/code&gt; 分支，然后 &lt;code&gt;Ctrl+Shift+P&lt;/code&gt; 唤出面板，输入 &lt;code&gt;Git: Merge Branch&lt;/code&gt;，选择刚才的 &lt;code&gt;feat/user-login&lt;/code&gt;，即可将新代码合并到主线上。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-git-子仓库-submodule&#34;&gt;2. Git 子仓库 (Submodule)
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;什么是子仓库？&lt;/strong&gt;
在大型项目或微服务架构中，你可能需要在一个主 Git 仓库里嵌套另一个 Git 仓库（比如引用一个通用的 UI 组件库，或者把公共配置抽离出来）。这就是 Submodule。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;添加子仓库&lt;/strong&gt;：
在终端执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule add &amp;lt;子仓库的git地址&amp;gt; &amp;lt;本地存放目录&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;踩坑提示&lt;/strong&gt;：当别人 Clone 含有子仓库的主项目时，默认情况下子仓库是空文件夹！必须使用递归拉取命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone --recursive &amp;lt;主仓库地址&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;(如果已经 clone 完了，可以使用 &lt;code&gt;git submodule update --init --recursive&lt;/code&gt; 补救拉取)&lt;/em&gt;。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Node/npm/pnpm 安装指南</title>
        <link>https://jiangwan.ink/p/node-npm-pnpm-install-guide/</link>
        <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
        
        <guid>https://jiangwan.ink/p/node-npm-pnpm-install-guide/</guid>
        <description>&lt;h2 id=&#34;一引言&#34;&gt;一、引言
&lt;/h2&gt;&lt;p&gt;在动手安装之前，我们先理清一个概念：&lt;strong&gt;Node.js 是一个 JavaScript 运行环境&lt;/strong&gt;。当你安装 Node.js 时，它会“买一赠一”地在你的系统里捆绑安装官方的包管理器，&lt;strong&gt;npm (Node Package Manager)&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;既然官方自带了 npm，为什么大家还要折腾？答案很简单：天下苦 &lt;code&gt;node_modules&lt;/code&gt; 久矣。&lt;/p&gt;
&lt;h3 id=&#34;1-npm-的痛点曾经的依赖黑洞&#34;&gt;1. npm 的痛点：曾经的“依赖黑洞”
&lt;/h3&gt;&lt;p&gt;早期的 npm 有几个让开发者头疼的缺陷：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;极其占空间&lt;/strong&gt;：每个项目都会在根目录下生成一个独立的 &lt;code&gt;node_modules&lt;/code&gt; 文件夹。如果你有 10 个项目都用到了同一个库（比如 React），这个库就会在你的硬盘里被重复下载、完整保存 10 次。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;速度慢&lt;/strong&gt;：串行安装机制导致下载速度令人抓狂。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-pnpm-的破局硬盘空间魔法&#34;&gt;2. pnpm 的破局：硬盘空间魔法
&lt;/h3&gt;&lt;p&gt;pnpm（Performant npm）是目前开源社区最推荐的包管理器之一，它直接解决了上述痛点。&lt;/p&gt;
&lt;p&gt;它巧妙地使用了计算机文件系统中的 &lt;strong&gt;硬链接（Hard link）&lt;/strong&gt; 技术。无论你在电脑上创建了多少个项目，只要它们用到了同一个版本的某个包，&lt;strong&gt;pnpm 只会在系统全局的 Store 中保存一份实体文件&lt;/strong&gt;，然后通过硬链接将它们映射到各个项目的 &lt;code&gt;node_modules&lt;/code&gt; 中。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;：极速的安装时间 + 极大地节省硬盘空间 = &lt;strong&gt;无脑选 pnpm&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;二实战演练&#34;&gt;二、实战演练
&lt;/h2&gt;&lt;p&gt;如果你只是单纯地为了跑脚手架、装依赖，直接去官网下载安装包绝对是最省事的选择。&lt;/p&gt;
&lt;h3 id=&#34;步骤一官网直装-nodejs&#34;&gt;步骤一：官网直装 Node.js
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;打开 &lt;a class=&#34;link&#34; href=&#34;https://nodejs.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Node.js 官方网站&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;强烈建议下载 LTS（长期维护版）&lt;/strong&gt;，不要去碰 Current（最新尝鲜版），能避免很多莫名其妙的兼容性报错。&lt;/li&gt;
&lt;li&gt;下载对应的 &lt;code&gt;.msi&lt;/code&gt; (Windows) 或 &lt;code&gt;.pkg&lt;/code&gt; (macOS) 文件，双击运行，一路点击 Next 完成安装。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;安装完成后，打开终端（CMD/PowerShell/Terminal），验证是否成功：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证 Node.js&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证赠送的 npm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;步骤二拯救-c-盘修改-npm-全局路径&#34;&gt;步骤二：拯救 C 盘（修改 npm 全局路径）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;这是无数 Windows 开发者痛彻心扉的踩坑点。&lt;/strong&gt; Node 本身装在 C 盘没关系，但 npm 默认会把以后所有全局安装的包和缓存文件都塞进 C 盘的 &lt;code&gt;AppData\Roaming&lt;/code&gt; 目录下。时间一长，C 盘直接标红。&lt;/p&gt;
&lt;p&gt;我们需要把这部分转移到 D 盘（或其他非系统盘）：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 D 盘的 Node.js 安装目录下（或者你自定义的一个目录，比如 &lt;code&gt;D:\nodejs&lt;/code&gt;），新建两个文件夹：&lt;code&gt;node_global&lt;/code&gt; 和 &lt;code&gt;node_cache&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;打开终端，执行以下命令重定向路径：&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 设置全局模块的安装路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; prefix &lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\nodejs\node_global&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 设置缓存路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; cache &lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\nodejs\node_cache&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;致命踩坑点：配置环境变量&lt;/strong&gt;。因为我们修改了全局安装路径，系统现在找不到你以后全局安装的命令了。你必须告诉 Windows 去哪里找：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;右键“此电脑” -&amp;gt; 属性 -&amp;gt; 高级系统设置 -&amp;gt; 环境变量。&lt;/li&gt;
&lt;li&gt;在“系统变量”中找到 &lt;code&gt;Path&lt;/code&gt;，双击编辑。&lt;/li&gt;
&lt;li&gt;新建一条，填入你刚才创建的全局路径：&lt;code&gt;D:\nodejs\node_global&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;一路点击“确定”保存，然后&lt;strong&gt;必须重启你的终端&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;步骤三配置镜像源与激活-pnpm&#34;&gt;步骤三：配置镜像源与激活 pnpm
&lt;/h3&gt;&lt;p&gt;网络问题是国内开发者的共同阻碍，我们需要把 npm 的下载源切换到国内镜像：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 设置淘宝镜像源&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; registry https://registry.npmmirror.com/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最后，利用刚刚配置好的 npm，全局安装并激活 pnpm：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 全局安装 pnpm（它现在会被安装到 D:\nodejs\node_global 里）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g pnpm
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 为 pnpm 同样配置国内镜像源&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; registry https://registry.npmmirror.com/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;至此，你的电脑不仅拥有了一个干净、极速、省空间的 pnpm 环境，还成功保卫了你宝贵的 C 盘容量。以后遇到任何项目的 &lt;code&gt;npm install&lt;/code&gt; 指令，都可以愉快地替换成 &lt;code&gt;pnpm install&lt;/code&gt; 了。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
