Skip to main content

8 posts tagged with "Npm"

View All Tags

pnpm 依赖解析机制和 npm/yarn 的区别?

· 5 min read

npm/yarn 与 pnpm 依赖解析的 核心区别

  1. npm/yarn 采用 hoisting 提升机制,纵容幽灵依赖,是设计缺陷
  2. pnpm 基于虚拟存储 + 符号链接,严格禁止传递依赖直接访问,确保依赖树 100% 正确一致
  3. 典型问题:npm 下"正常运行"的代码,pnpm 下会报 Webpack 解析错误

解决方案:直接 pnpm add 添加为显式依赖,一行命令解决。

本质是设计理念的选择:pnpm 把正确性放在第一位,而不是开发便利性。

额外优势:磁盘节省 50%+,安装速度快 2-3 倍,全局硬链接共享同版本包。

yarn 使用

· 16 min read
Kimi Gao
Fullstack & AI

Get started

macOS

  1. 使用脚本安装,每次安装的都是最新版:
curl -o- -L https://yarnpkg.com/install.sh | bash

如需升级,再次运行此命令,然后会出现以下信息:

/Users/xxx/.yarn already exists, possibly from a past Yarn install.
> Remove it (rm -rf /Users/xxx/.yarn) and run this script again.

根据提示,由于已经安装了 yarn,所以需要先删除~/.yarn文件,然后再重新执行该命令,即可安装最新版 yarn。

Node.js Package Version & Dependencies

· 3 min read
Kimi Gao
Fullstack & AI

Semantic version

一般来说,版本号主要分为三部分:主版本号(major)次版本号(minor)修补版本号(patch)。以2.6.6为例,major 为 2,minor 为 6,patch 为 6。

  • major: 主版本号,新的架构调整或不兼容的修改被加入公共 API 必须递增,次版本号和修订号必须归零。
  • minor: 次版本号,新增功能,兼容老版本,或公共 API 标记为弃用时必须递增,修订号必须归零。
  • patch: 修订号,修复 bug,兼容老版本。