pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pnpm 时,lodash 将被存储在一个内容可寻址的存储器中。
pnpm 7.0 正式发布,更新内容如下:
主要变化
- 不支持 Node.js 12
- 运行
pnpm -r exec|run|add 时,默认排除了 root 包
- 默认情况下,
embed-readme 设置为 false
- 当使用
pnpm run <script> 时,脚本名称后面的所有命令行参数现在都被传递到脚本的 argv 中,甚至包括 -。
- 默认情况下,Side effects 缓存是开启的。要关闭它,请使用
side-effects-cache=false
npm_config_argv 环境变量没有为脚本设置
pnpx 现在只是 pnpm dlx 的一个别名
pnpm install -g pkg 将只把全局命令添加到预定义的位置
pnpm pack 只有在文件是 bin 或列在 publishConfig.executableFiles 数组中时,才会将其打包为可执行文件
W 不再是 -ignore-workspace-root-check 的别名了
- 允许在一个与软件包名称不匹配的目录中执行生命周期脚本。以前只有在使用
--unsafe-perm CLI 选项时才允许这样做
strict-peer-dependencies 默认为 true
- 根工作区项目的依赖不用于解决其他工作区项目的 peer dependencies
- 不要默认将类型提升到
node_modules 的根目录
- 将全局存储的位置从
~/.pnpm-store 更改为 <pnpm home directory>/store
- 在 Linux 上,默认是
~/.local/share/pnpm/store
- 在 Windows 上:
%LOCALAPPDATA%/pnpm/store
- 在 macOS 上:
~/Library/pnpm/store
- Lockfile 版本升级到了 5.4
更多详情可查看:https://github.com/pnpm/pnpm/releases