mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-27 02:20:19 -04:00
## Summary - pnpm installing a Node.js runtime (`node@runtime:<ver>`, `pnpm env use`, `pnpm runtime set node`) no longer extracts the bundled `npm`, `npx`, and `corepack`. These make up ~2,800 of ~5,800 files in a typical Node.js archive, so skipping them materially reduces hashing, CAS writes, SQLite index inserts, and import/link work. - Users who still need `npm` can install it as a separate package. ## How A new optional `ignoreFilePattern` (regex source string, serializable across the worker boundary) threads through `FetchOptions` → `tarball-fetcher` → `@pnpm/worker` → `cafs.addFilesFromTarball`. `cafs.addFilesFromTarball` now accepts a per-call ignore on top of the existing cafs-level `ignoreFile`; the two are combined. `@pnpm/fetching.binary-fetcher` defines the Node-specific regex and applies it when `opts.pkg.name === 'node'`: - Tarball path: sets `ignoreFilePattern`. - Windows zip path: new `ignoreEntry?: RegExp` on `AssetInfo`; `extractZipToTarget` strips the `basename/` prefix and skips matching entries before `zip.extractEntryTo`. `@pnpm/engine.runtime.node-resolver`'s `getNodeBinsForCurrentOS` drops `npm`/`npx` so pnpm no longer creates shims for bins that no longer exist. ## Breaking change Shipping in v11. After this lands, `pnpm runtime set node` / `node@runtime:<version>` no longer puts `npm`, `npx`, or `corepack` on `$PATH`. Scripts that call them directly will need to install npm separately.
63 lines
1.9 KiB
JSON
63 lines
1.9 KiB
JSON
{
|
|
"name": "@pnpm/installing.client",
|
|
"version": "1100.0.3",
|
|
"description": "Creates the package resolve and fetch functions",
|
|
"keywords": [
|
|
"pnpm",
|
|
"pnpm11",
|
|
"npm",
|
|
"resolver"
|
|
],
|
|
"license": "MIT",
|
|
"funding": "https://opencollective.com/pnpm",
|
|
"repository": "https://github.com/pnpm/pnpm/tree/main/installing/client",
|
|
"homepage": "https://github.com/pnpm/pnpm/tree/main/installing/client#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": "pn compile && pn .test",
|
|
"prepublishOnly": "tsgo --build",
|
|
"compile": "tsgo --build && pn lint --fix",
|
|
".test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules --disable-warning=ExperimentalWarning --disable-warning=DEP0169\" jest"
|
|
},
|
|
"dependencies": {
|
|
"@pnpm/engine.runtime.node-resolver": "workspace:*",
|
|
"@pnpm/fetching.binary-fetcher": "workspace:*",
|
|
"@pnpm/fetching.directory-fetcher": "workspace:*",
|
|
"@pnpm/fetching.git-fetcher": "workspace:*",
|
|
"@pnpm/fetching.tarball-fetcher": "workspace:*",
|
|
"@pnpm/fetching.types": "workspace:*",
|
|
"@pnpm/hooks.types": "workspace:*",
|
|
"@pnpm/network.auth-header": "workspace:*",
|
|
"@pnpm/network.fetch": "workspace:*",
|
|
"@pnpm/resolving.default-resolver": "workspace:*",
|
|
"@pnpm/resolving.resolver-base": "workspace:*",
|
|
"@pnpm/store.index": "workspace:*",
|
|
"@pnpm/types": "workspace:*",
|
|
"ramda": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@pnpm/fetching.fetcher-base": "workspace:*",
|
|
"@pnpm/installing.client": "workspace:*",
|
|
"@types/ramda": "catalog:"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.13"
|
|
},
|
|
"jest": {
|
|
"preset": "@pnpm/jest-config"
|
|
}
|
|
}
|