Summary
Tracking issue for installation-related settings supported by the pnpm CLI that the Rust port (pacquet) does not yet support. This was produced by diffing pnpm's Config type (config/reader/src) against pacquet's config crate (pacquet/crates/config/src/lib.rs), its CLI args, and the rest of the workspace.
Scope is limited to pacquet's current command surface: install, add, update, remove. Settings that only affect publish/run/exec/dlx/audit are excluded.
Pacquet already covers a large surface (hoisting, nodeLinker, dedupe-*, peer resolution, store/virtual-store layout, minimumReleaseAge, trustPolicy, overrides, packageExtensions, patchedDependencies, allowBuilds, supportedArchitectures, fetchRetry*, catalog resolution, etc.). The gaps below are what remain.
Lockfile
Resolution / versions
Builds / scripts / hooks
Patching
Store / modules
Network (currently hardcoded defaults in pacquet, not configurable)
Catalogs
Workspace
Save behavior (add/update)
Manifest / engine
Notes
enablePnp is not a separate setting in either implementation — pnp is a nodeLinker value, which pacquet already accepts.
- The network settings exist as internal constants in pacquet (e.g.
default_network_concurrency()) but aren't user-configurable.
- Some items (pnpmfile hooks,
onlyBuiltDependencies) are already acknowledged as TODOs in pacquet's own source comments.
Written by an agent (Claude Code, claude-opus-4-8).
Summary
Tracking issue for installation-related settings supported by the pnpm CLI that the Rust port (pacquet) does not yet support. This was produced by diffing pnpm's
Configtype (config/reader/src) against pacquet's config crate (pacquet/crates/config/src/lib.rs), its CLI args, and the rest of the workspace.Scope is limited to pacquet's current command surface:
install,add,update,remove. Settings that only affectpublish/run/exec/dlx/auditare excluded.Pacquet already covers a large surface (hoisting,
nodeLinker,dedupe-*, peer resolution, store/virtual-store layout,minimumReleaseAge,trustPolicy,overrides,packageExtensions,patchedDependencies,allowBuilds,supportedArchitectures,fetchRetry*, catalog resolution, etc.). The gaps below are what remain.Lockfile
lockfileOnly/--lockfile-only— resolve + write lockfile without linking (done in feat(pacquet): port lockfileOnly setting #12046)lockfileDir— custom lockfile locationsharedWorkspaceLockfile— toggle for single root lockfileuseGitBranchLockfile,gitBranchLockfile,mergeGitBranchLockfiles,mergeGitBranchLockfilesBranchPattern— per-branch lockfilesfrozenLockfileas a config-file/env setting (currently only a CLI flag)Resolution / versions
resolutionMode(highest/time-based/lowest-direct)registrySupportsTimeFieldallowedDeprecatedVersionsupdateConfig.ignoreDependenciespeerDependencyRules(ignoreMissing,allowAny,allowedVersions)Builds / scripts / hooks
ignoreScriptsenablePrePostScripts,scriptShell,syncInjectedDepsAfterScriptsonlyBuiltDependencies/onlyBuiltDependenciesFile/neverBuiltDependencies(currently silently ignored; pacquet usesallowBuilds/dangerouslyAllowAllBuildsinstead)strictDepBuilds.pnpmfile.cjshooks (pnpmfile,globalPnpmfile,enablePnpmfile,ignorePnpmfile) — pacquet does not run pnpmfiles yetPatching
allowUnusedPatches(andallowNonAppliedPatches)patchesDirStore / modules
virtualStoreOnlystateDirstrictStorePkgContentCheckenableModulesDirpreferSymlinkedExecutablesNetwork (currently hardcoded defaults in pacquet, not configurable)
networkConcurrency,fetchingConcurrency,maxSocketsfetchTimeout,fetchWarnTimeoutMs,fetchMinSpeedKiBpsuserAgent,npmrcAuthFileCatalogs
catalogModecleanupUnusedCatalogsWorkspace
ignoreWorkspaceCycles/disallowWorkspaceCyclesincludeWorkspaceRootSave behavior (
add/update)savePrefixsaveWorkspaceProtocolsavePeersaveCatalogNameManifest / engine
engineStrict,nodeVersion(engine-strict gating during install)configDependenciesNotes
enablePnpis not a separate setting in either implementation —pnpis anodeLinkervalue, which pacquet already accepts.default_network_concurrency()) but aren't user-configurable.onlyBuiltDependencies) are already acknowledged as TODOs in pacquet's own source comments.Written by an agent (Claude Code, claude-opus-4-8).