[!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 进行独立验证。