id = "pnpm" name = "pnpm" homepage = "https://pnpm.io" description = "Fast, disk space efficient package manager." icon = "theSVG:pnpm" # `pnpx` is pnpm's own shorthand for `pnpm dlx`, shipped by the same package. executables = ["pnpm", "pnpx"] [dotfiles] # https://pnpm.io/cli/config — the global configuration file is # $XDG_CONFIG_HOME/pnpm/rc when that variable is set, otherwise # ~/.config/pnpm/rc on Linux, ~/Library/Preferences/pnpm/rc on macOS and # ~/AppData/Local/pnpm/config/rc on Windows. The same page gives the same four # locations for config.yaml, the YAML settings file, and # https://pnpm.io/settings adds that settings such as hoistPattern, nodeLinker # and shamefullyHoist "must be configured in pnpm-workspace.yaml or the global # ~/.config/pnpm/config.yaml". # # ~/.npmrc is not listed here: pnpm reads it, but it is npm's file and the npm # entry already describes it. paths = [ "~/.config/pnpm/rc", "~/Library/Preferences/pnpm/rc", "%LOCALAPPDATA%/pnpm/config/rc", "~/.config/pnpm/config.yaml", "~/Library/Preferences/pnpm/config.yaml", "%LOCALAPPDATA%/pnpm/config/config.yaml", ] # https://pnpm.io/settings — the default storeDir is $XDG_DATA_HOME/pnpm/store, # ~/.local/share/pnpm/store on Linux, ~/Library/pnpm/store on macOS and # ~/AppData/Local/pnpm/store on Windows. Content-addressed package storage, not # configuration. # # Three literal spellings, because no base directory names this set: the macOS # store is ~/Library/pnpm — `pnpm store path` prints it — which is neither # [dataHome]'s ~/Library/Application Support nor [xdgData]'s ~/.local/share. # So ~/.local/share/pnpm/store is the Linux line alone, not a spelling of the # same directory the other two name. exclude = [ "~/.local/share/pnpm/store/", "~/Library/pnpm/store/", "%LOCALAPPDATA%/pnpm/store/", ] secret = [] # The rc file is npmrc syntax, and registry auth there is keyed by the registry # URL, so the key is never the same twice — `//registry.npmjs.org/:_authToken=…`. # Every one of them starts with `//` and nothing else in the file does. All # three spellings, or the token is lifted out on Linux and syncs in the clear # from a Mac or a Windows box. [[dotfiles.secret_paths]] file = ["~/.config/pnpm/rc", "~/Library/Preferences/pnpm/rc", "%LOCALAPPDATA%/pnpm/config/rc"] match = { prefix = ["//"] } # store-dir and global-bin-dir are absolute paths into this machine's disk — # a Homebrew prefix, a Linux XDG directory, a drive letter — and pnpm resolves # them itself when they are absent. # Since pnpm resolves them itself, a line here is the user's own choice of where # the store and the global bin live: kept so they can rebuild this machine, # never applied to the next. [[dotfiles.machine_lines]] file = ["~/.config/pnpm/rc", "~/Library/Preferences/pnpm/rc", "%LOCALAPPDATA%/pnpm/config/rc"] match = { prefix = ["store-dir", "global-bin-dir"] } scope = "backup" [commands] format = 1 label = "pnpm" description = "Add, remove, update dependencies and run scripts. Install flags such as --frozen-lockfile are not in the completion data and are left out." quality = "ai-draft" base = "fig:pnpm" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pnpm.ts" license = "MIT" [[commands.subcommand]] path = ["add"] label = "Add packages" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pnpm.ts" license = "MIT" [[commands.subcommand.field]] id = "packages" label = "Packages" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "save_dev" label = "As devDependency" type = "boolean" option = ["--save-dev", "-D"] sources = ["fig"] [[commands.subcommand.field]] id = "save_prod" label = "As dependency" type = "boolean" option = ["--save-prod", "-P"] sources = ["fig"] [[commands.subcommand.field]] id = "save_optional" label = "As optionalDependency" type = "boolean" option = ["--save-optional", "-O"] sources = ["fig"] [[commands.subcommand.field]] id = "save_exact" label = "Exact version" type = "boolean" option = ["--save-exact", "-E"] sources = ["fig"] [[commands.subcommand.field]] id = "global" label = "Install globally" type = "boolean" option = ["--global", "-g"] sources = ["fig"] [[commands.subcommand.field]] id = "workspace" label = "Workspace packages only" type = "boolean" option = ["--workspace"] sources = ["fig"] [[commands.subcommand.field]] id = "filter" label = "Filter" type = "string" option = ["--filter"] sources = ["fig"] [[commands.subcommand.field]] id = "ignore_scripts" label = "Skip scripts" type = "boolean" option = ["--ignore-scripts"] sources = ["fig"] [[commands.subcommand.field]] id = "offline" label = "Offline" type = "boolean" option = ["--offline"] sources = ["fig"] [[commands.subcommand.task]] id = "add" label = "Add dependency" fields = ["packages", "save_dev", "save_prod", "save_optional", "save_exact", "global", "workspace", "filter", "ignore_scripts", "offline"] required = ["packages"] [[commands.subcommand.task]] id = "add-dev" label = "Add dev dependency" set = { save_dev = [true] } fields = ["packages", "save_dev", "save_exact"] required = ["packages"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["packages", "save_dev", "save_prod", "save_optional", "save_exact"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["global", "workspace", "filter", "ignore_scripts", "offline"] [[commands.subcommand]] path = ["remove"] label = "Remove packages" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pnpm.ts" license = "MIT" [[commands.subcommand.field]] id = "packages" label = "Packages" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "recursive" label = "In every workspace package" type = "boolean" option = ["--recursive", "-r"] sources = ["fig"] [[commands.subcommand.field]] id = "global" label = "Global package" type = "boolean" option = ["--global"] sources = ["fig"] [[commands.subcommand.field]] id = "save_dev" label = "From devDependencies" type = "boolean" option = ["--save-dev", "-D"] sources = ["fig"] [[commands.subcommand.field]] id = "filter" label = "Filter" type = "string" option = ["--filter"] sources = ["fig"] [[commands.subcommand.task]] id = "remove" label = "Remove" fields = ["packages", "recursive", "global", "save_dev", "filter"] required = ["packages"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["packages", "recursive", "global", "save_dev", "filter"] [[commands.subcommand]] path = ["update"] label = "Update packages" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pnpm.ts" license = "MIT" [[commands.subcommand.field]] id = "packages" label = "Packages (empty = all)" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "latest" label = "Ignore version ranges" type = "boolean" option = ["--latest", "-L"] sources = ["fig"] [[commands.subcommand.field]] id = "interactive" label = "Pick interactively" type = "boolean" option = ["--interactive", "-i"] sources = ["fig"] [[commands.subcommand.field]] id = "recursive" label = "In every workspace package" type = "boolean" option = ["--recursive", "-r"] sources = ["fig"] [[commands.subcommand.field]] id = "global" label = "Global packages" type = "boolean" option = ["--global"] sources = ["fig"] [[commands.subcommand.field]] id = "filter" label = "Filter" type = "string" option = ["--filter"] sources = ["fig"] [[commands.subcommand.task]] id = "update" label = "Update all" fields = ["packages", "latest", "interactive", "recursive", "global", "filter"] required = [] [[commands.subcommand.task]] id = "latest" label = "Interactive latest" set = { latest = [true], interactive = [true] } fields = ["latest", "interactive"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["packages", "latest", "interactive", "recursive", "global"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["filter"] [[commands.subcommand]] path = ["run"] label = "Run a script" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/pnpm.ts" license = "MIT" [[commands.subcommand.field]] id = "script" label = "Script and arguments" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "recursive" label = "In every workspace package" type = "boolean" option = ["--recursive", "-r"] sources = ["fig"] [[commands.subcommand.field]] id = "if_present" label = "Skip if undefined" type = "boolean" option = ["--if-present"] sources = ["fig"] [[commands.subcommand.field]] id = "parallel" label = "Run in parallel" type = "boolean" option = ["--parallel"] sources = ["fig"] [[commands.subcommand.field]] id = "stream" label = "Stream output" type = "boolean" option = ["--stream"] sources = ["fig"] [[commands.subcommand.field]] id = "filter" label = "Filter" type = "string" option = ["--filter"] sources = ["fig"] [[commands.subcommand.task]] id = "run" label = "Run script" fields = ["script", "recursive", "if_present", "parallel", "stream", "filter"] required = ["script"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["script", "recursive", "if_present", "parallel", "stream"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["filter"]