pnpm 12.4 更新 | pnpm 现在支持安装 rust crate 包 和 Python 包了

[!quote]+

pnpm 12.4 在同一工作区内将 crate 和 Python 包与 npm 包并排安装,新增 pnpm 流水线功能,可像 CI 作业一样运行工作区任务,并为另外六个平台提供二进制文件。与 12.4.1 版本同时发布的 pnpr 0.1.0-alpha.11 除了支持 npm 之外,还支持 Cargo、Python 和容器注册表,可在一次事务中跨所有注册表发布内容,并通过 OIDC 实现用户登录。

如何使用?

启用 Cargo dependencies | pnpm 和 Python dependencies | pnpm

在pnpm-workspace.yaml中添加


cargo:
  enabled: true
python:
  enabled: true

添加包的例子为

pnpm add crate:serde
pnpm add pypi:httpx
pnpm install

[!attention]+

每个生态系统都保留着自己的语义。Cargo 依赖项位于 Cargo.toml 和 Cargo.lock 中,解析到 crates.io 或由 cargo.indexUrl 指定的稀疏注册表,并被打包到 Cargo 目录源中,pnpm 通过 .cargo/config.toml 进行配置。通过 Git 依赖项或 [patch.crates-io] 绑定到特定 Git 版本的 crate,会按照 Cargo vendor 的配置方式检出并打包。注册表身份验证通过 pnpm 自身的凭据以及 CARGO_REGISTRY_TOKEN 或 $CARGO_HOME/credentials.toml(针对 crates.io)进行。

Python 依赖项位于 pyproject.toml 和标准 pylock.toml 文件中,每个项目都有一个托管的 .venv 环境,并通过 pnpm run 和 pnpm execput 命令添加到 PATH 环境变量中。lockfile 格式已使用 uv 进行独立验证。

7 个赞

何意味,pnpm要实现软件包管理大一统吗

我永远喜欢 pnpm 喵

虽然这家伙的 rusted 版本失败了喵

1 个赞