@pnpm/exe 12.3.0 → 12.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/pnpm.mjs +3 -6
- package/dist/node_modules/.pnpm-workspace-state-v1.json +5 -5
- package/install.js +8 -7
- package/package.json +9 -9
- package/pnpm +4 -21
package/bin/pnpm.mjs
CHANGED
|
@@ -3,17 +3,14 @@
|
|
|
3
3
|
// `./bin/pnpx.mjs` for every pnpm >=11 (see its `config.json`) and loads them
|
|
4
4
|
// into its own Node.js process, which a native executable cannot be loaded into.
|
|
5
5
|
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// ordinary `npm install -g pnpm` never pays for a Node.js startup:
|
|
9
|
-
// `package.json#bin` points at the native binary.
|
|
6
|
+
// Only Corepack reaches this file: `package.json#bin` still points at the native
|
|
7
|
+
// binary, so an ordinary `npm install -g pnpm` never pays for a Node.js startup.
|
|
10
8
|
//
|
|
11
9
|
// Corepack installs no dependencies and runs no lifecycle scripts, so the
|
|
12
10
|
// `@pnpm/exe.<target>` package that carries the binary is absent and
|
|
13
11
|
// `install.js` never ran. The binary is therefore downloaded on first use and
|
|
14
12
|
// kept next to this wrapper — where the native binary also finds the `dist/`
|
|
15
|
-
// payload it ships node-gyp in.
|
|
16
|
-
// that package, and the binary is taken from there.
|
|
13
|
+
// payload it ships node-gyp in.
|
|
17
14
|
//
|
|
18
15
|
// The download itself is `get-pnpm`, the package behind https://get.pnpm.io,
|
|
19
16
|
// which already knows how to verify one; it travels in that same `dist/`
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lastValidatedTimestamp":
|
|
2
|
+
"lastValidatedTimestamp": 1788478744905,
|
|
3
3
|
"projects": {
|
|
4
4
|
"/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
|
|
5
5
|
"name": "pacquet",
|
|
6
|
-
"version": "12.3.
|
|
6
|
+
"version": "12.3.2"
|
|
7
7
|
}
|
|
8
8
|
},
|
|
9
9
|
"pnpmfiles": [],
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"@types/write-file-atomic": "^4.0.3",
|
|
88
88
|
"@types/yarnpkg__lockfile": "^1.1.9",
|
|
89
89
|
"@types/zkochan__table": "npm:@types/table@6.3.2",
|
|
90
|
-
"@typescript-eslint/utils": "^8.
|
|
90
|
+
"@typescript-eslint/utils": "^8.69.0",
|
|
91
91
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
92
92
|
"@yarnpkg/core": "4.9.1",
|
|
93
93
|
"@yarnpkg/extensions": "2.0.7",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"p-defer": "^4.0.1",
|
|
191
191
|
"p-every": "^2.0.0",
|
|
192
192
|
"p-filter": "^4.1.0",
|
|
193
|
-
"p-limit": "^7.3.
|
|
193
|
+
"p-limit": "^7.3.2",
|
|
194
194
|
"p-queue": "^9.3.3",
|
|
195
195
|
"parse-json": "^8.3.0",
|
|
196
196
|
"parse-npm-tarball-url": "^5.0.0",
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
"tree-kill": "^1.2.2",
|
|
248
248
|
"ts-jest-resolver": "2.0.1",
|
|
249
249
|
"typescript": "6.0.3",
|
|
250
|
-
"typescript-eslint": "^8.
|
|
250
|
+
"typescript-eslint": "^8.69.0",
|
|
251
251
|
"undici": "^7.29.0",
|
|
252
252
|
"unified": "^11.0.5",
|
|
253
253
|
"validate-npm-package-name": "7.0.2",
|
package/install.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Preinstall for the pnpm v12 wrapper (shared verbatim by `pnpm` and
|
|
3
|
-
// `@pnpm/exe`): replace the placeholder bins with the host's native
|
|
4
|
-
// `pnpm` runs directly, no Node startup per call.
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
3
|
+
// `@pnpm/exe`): replace the shebang-less placeholder bins with the host's native
|
|
4
|
+
// binary so `pnpm` runs directly, no Node startup per call. The placeholder must
|
|
5
|
+
// stay shebang-less because pnpm 11 records its interpreter before installing
|
|
6
|
+
// the native binary at the same path. npm's global Windows shims still target
|
|
7
|
+
// the extensionless path after the `bin` rewrite, so postinstall asks npm to
|
|
8
|
+
// regenerate them against `pnpm.exe`. When lifecycle scripts are blocked
|
|
9
|
+
// (`--ignore-scripts`, pnpm/Bun default), the placeholder remains and pnpm
|
|
10
|
+
// cannot run.
|
|
10
11
|
//
|
|
11
12
|
// `pn`/`pnpx`/`pnx` are committed `#!/bin/sh` scripts on Unix (so only `pnpm` is
|
|
12
13
|
// relinked); on Windows the native binary is hardlinked onto each and
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"./dist/node_modules/node-gyp/gyp/gyp"
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
|
-
"version": "12.3.
|
|
12
|
+
"version": "12.3.2",
|
|
13
13
|
"description": "Fast, disk space efficient package manager",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"pnpm",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
"THIRD-PARTY-NOTICES.md"
|
|
47
47
|
],
|
|
48
48
|
"optionalDependencies": {
|
|
49
|
-
"@pnpm/exe.win32-x64": "12.3.
|
|
50
|
-
"@pnpm/exe.win32-arm64": "12.3.
|
|
51
|
-
"@pnpm/exe.darwin-x64": "12.3.
|
|
52
|
-
"@pnpm/exe.darwin-arm64": "12.3.
|
|
53
|
-
"@pnpm/exe.linux-x64": "12.3.
|
|
54
|
-
"@pnpm/exe.linux-arm64": "12.3.
|
|
55
|
-
"@pnpm/exe.linux-x64-musl": "12.3.
|
|
56
|
-
"@pnpm/exe.linux-arm64-musl": "12.3.
|
|
49
|
+
"@pnpm/exe.win32-x64": "12.3.2",
|
|
50
|
+
"@pnpm/exe.win32-arm64": "12.3.2",
|
|
51
|
+
"@pnpm/exe.darwin-x64": "12.3.2",
|
|
52
|
+
"@pnpm/exe.darwin-arm64": "12.3.2",
|
|
53
|
+
"@pnpm/exe.linux-x64": "12.3.2",
|
|
54
|
+
"@pnpm/exe.linux-arm64": "12.3.2",
|
|
55
|
+
"@pnpm/exe.linux-x64-musl": "12.3.2",
|
|
56
|
+
"@pnpm/exe.linux-arm64-musl": "12.3.2"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"preinstall": "node install.js",
|
package/pnpm
CHANGED
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// (`--ignore-scripts`) — so pnpm runs through Node.js instead: `bin/pnpm.mjs`
|
|
6
|
-
// finds the installed binary, or downloads one, and spawns it.
|
|
7
|
-
//
|
|
8
|
-
// Package managers write bin shims after preinstall has had its chance to run,
|
|
9
|
-
// so a shim made from this file's shebang exists only where the binary never
|
|
10
|
-
// arrived. That is also why this file is left in place once it is running: a
|
|
11
|
-
// binary put here under such a shim would be run through `node`.
|
|
12
|
-
import process from 'node:process'
|
|
13
|
-
|
|
14
|
-
if (process.stderr.isTTY) {
|
|
15
|
-
process.stderr.write(
|
|
16
|
-
'pnpm is running through Node.js because the script that installs its native binary was skipped. ' +
|
|
17
|
-
'Reinstall pnpm with its build scripts allowed to run the binary directly.\n'
|
|
18
|
-
)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
await import('./bin/pnpm.mjs')
|
|
1
|
+
This is a placeholder. pnpm's native binary replaces this file during
|
|
2
|
+
installation (see ./install.js). If you are reading this, the install/build
|
|
3
|
+
script did not run — reinstall with build scripts enabled (e.g. allow-list
|
|
4
|
+
pnpm's build under pnpm or Bun, or drop --ignore-scripts).
|