mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-27 11:31:45 -04:00
This PR overhauls `pnpm env` use to route through pnpm's own install machinery instead of maintaining a parallel code path with manual symlink/shim/hardlink logic. ``` pnpm env use -g <version> ``` now runs: ``` pnpm add --global node@runtime:<version> ``` via `@pnpm/exec.pnpm-cli-runner`. All manual symlink, hardlink, and cmd-shim code in `envUse.ts` is gone (~1000 lines removed across the package). ### Changes **npm and npx shims on all platforms** Added `getNodeBinsForCurrentOS(platform)` to `@pnpm/constants`, returning a `Record<string, string>` with the correct relative paths for `node`, `npm`, and `npx` inside a Node.js distribution. `BinaryResolution.bin` is widened from `string` to `string | Record<string, string>` in `@pnpm/resolver-base` and `@pnpm/lockfile.types`, so the node resolver can set all three entries and pnpm's bin-linker creates shims for each automatically. **Windows npm/npx fix** `addFilesFromDir` was skipping root-level `node_modules/` (to avoid storing a package's own dependencies), which stripped the bundled `npm` from Node.js Windows zip archives. Added an `includeNodeModules` option and enabled it from the binary fetcher so Windows distributions keep their full contents. **Removed subcommands** `pnpm env add` and `pnpm env remove` are removed. `pnpm env use` handles both installing and activating a version. `pnpm env list` now always lists remote versions (the `--remote` flag is no longer required, though it is kept for backwards compatibility). **musl support** On Alpine Linux and other musl-based systems, the musl variant of Node.js is automatically downloaded from [unofficial-builds.nodejs.org](https://unofficial-builds.nodejs.org).
58 lines
1.5 KiB
JSON
58 lines
1.5 KiB
JSON
{
|
|
"name": "@pnpm/plugin-commands-env",
|
|
"version": "1000.0.44",
|
|
"description": "pnpm commands for managing Node.js",
|
|
"keywords": [
|
|
"pnpm",
|
|
"pnpm11",
|
|
"env"
|
|
],
|
|
"license": "MIT",
|
|
"funding": "https://opencollective.com/pnpm",
|
|
"repository": "https://github.com/pnpm/pnpm/tree/main/env/plugin-commands-env",
|
|
"homepage": "https://github.com/pnpm/pnpm/tree/main/env/plugin-commands-env#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/cli-utils": "workspace:*",
|
|
"@pnpm/config": "workspace:*",
|
|
"@pnpm/error": "workspace:*",
|
|
"@pnpm/exec.pnpm-cli-runner": "workspace:*",
|
|
"@pnpm/fetch": "workspace:*",
|
|
"@pnpm/node.resolver": "workspace:*",
|
|
"render-help": "catalog:"
|
|
},
|
|
"peerDependencies": {
|
|
"@pnpm/logger": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@jest/globals": "catalog:",
|
|
"@pnpm/logger": "workspace:*",
|
|
"@pnpm/plugin-commands-env": "workspace:*"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.13"
|
|
},
|
|
"jest": {
|
|
"preset": "@pnpm/jest-config"
|
|
}
|
|
}
|