mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-27 11:31:45 -04:00
**TLDR:** Global packages in pnpm v10 are annoying and slow because they all are installed to a single global package. Instead, we will now use a system that is similar to the one used by "pnpm dlx" (aka "pnpx").
Each globally installed package (or group of packages installed together) now gets its own isolated installation directory with its own `package.json`, `node_modules`, and lockfile. This prevents global packages from interfering with each other through peer dependency conflicts or version resolution shifts.
## Changes
- Add `@pnpm/global-packages` shared utilities package for scanning, hashing, and managing isolated global installs
- `pnpm add -g` creates isolated installs in `{pnpmHomeDir}/global/v11/{hash}/`
- `pnpm remove -g` removes the entire installation group containing the package
- `pnpm update -g` re-installs into new isolated directories and swaps symlinks
- `pnpm list -g` scans isolated directories to show installed global packages
- `pnpm outdated -g` checks each isolated installation for outdated dependencies
- `pnpm store prune` cleans up orphaned global installation directories
## Breaking changes
- `pnpm install -g` (no args) is no longer supported — use `pnpm add -g <pkg>`
- `pnpm link <pkg-name>` no longer resolves packages from the global store — only relative or absolute paths are accepted
- `pnpm link --global` is removed — use `pnpm add -g .` to register a local package's bins globally
71 lines
2.0 KiB
JSON
71 lines
2.0 KiB
JSON
{
|
|
"name": "@pnpm/exec.build-commands",
|
|
"version": "1001.0.33",
|
|
"description": "Commands for managing dependency builds",
|
|
"keywords": [
|
|
"pnpm",
|
|
"pnpm11",
|
|
"rebuild"
|
|
],
|
|
"license": "MIT",
|
|
"funding": "https://opencollective.com/pnpm",
|
|
"repository": "https://github.com/pnpm/pnpm/tree/main/exec/build-commands",
|
|
"homepage": "https://github.com/pnpm/pnpm/tree/main/exec/build-commands#readme",
|
|
"bugs": {
|
|
"url": "https://github.com/pnpm/pnpm/issues"
|
|
},
|
|
"type": "module",
|
|
"main": "lib/index.js",
|
|
"types": "lib/index.d.ts",
|
|
"exports": {
|
|
".": "./lib/index.js"
|
|
},
|
|
"files": [
|
|
"lib",
|
|
"!*.map"
|
|
],
|
|
"scripts": {
|
|
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
"_test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
|
|
"test": "pnpm run compile && pnpm run _test",
|
|
"prepublishOnly": "pnpm run compile",
|
|
"compile": "tsgo --build && pnpm run lint --fix"
|
|
},
|
|
"dependencies": {
|
|
"@pnpm/config": "workspace:*",
|
|
"@pnpm/config.config-writer": "workspace:*",
|
|
"@pnpm/dependency-path": "workspace:*",
|
|
"@pnpm/error": "workspace:*",
|
|
"@pnpm/modules-yaml": "workspace:*",
|
|
"@pnpm/plugin-commands-rebuild": "workspace:*",
|
|
"@pnpm/prepare-temp-dir": "workspace:*",
|
|
"@pnpm/util.lex-comparator": "catalog:",
|
|
"chalk": "catalog:",
|
|
"enquirer": "catalog:",
|
|
"render-help": "catalog:"
|
|
},
|
|
"peerDependencies": {
|
|
"@pnpm/logger": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@jest/globals": "catalog:",
|
|
"@pnpm/exec.build-commands": "workspace:*",
|
|
"@pnpm/prepare": "workspace:*",
|
|
"@pnpm/registry-mock": "catalog:",
|
|
"@pnpm/types": "workspace:*",
|
|
"@types/ramda": "catalog:",
|
|
"execa": "catalog:",
|
|
"load-json-file": "catalog:",
|
|
"ramda": "catalog:",
|
|
"read-yaml-file": "catalog:",
|
|
"write-package": "catalog:",
|
|
"write-yaml-file": "catalog:"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.13"
|
|
},
|
|
"jest": {
|
|
"preset": "@pnpm/jest-config/with-registry"
|
|
}
|
|
}
|