Compare commits
7 Commits
v6.0.0
..
e578e19d19
| Author | SHA1 | Date | |
|---|---|---|---|
| e578e19d19 | |||
| 8912a9102a | |||
| 26f6d4f2c5 | |||
| 903f9c1a6e | |||
| bdf0af2a9d | |||
| 71c92474e7 | |||
| 078e9d4164 |
@@ -129,6 +129,82 @@ jobs:
|
|||||||
pnpm add is-odd
|
pnpm add is-odd
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
test_version_respects_request:
|
||||||
|
name: 'Test version input is actually installed (${{ matrix.version }}, ${{ matrix.os }})'
|
||||||
|
# Regression test for #225 / #230: the bootstrap pnpm on PATH was shadowing the self-updated binary,
|
||||||
|
# so a user requesting e.g. `version: 9.15.5` would silently get the bootstrap version.
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- macos-latest
|
||||||
|
- windows-latest
|
||||||
|
version:
|
||||||
|
- '9.15.5'
|
||||||
|
- '10.33.0'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||||
|
|
||||||
|
- name: Run the action
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
|
||||||
|
- name: 'Test: exact version installed'
|
||||||
|
run: |
|
||||||
|
required='${{ matrix.version }}'
|
||||||
|
actual="$(pnpm --version)"
|
||||||
|
echo "pnpm version: ${actual}"
|
||||||
|
if [ "${actual}" != "${required}" ]; then
|
||||||
|
echo "Expected pnpm version ${required}, but got ${actual}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
test_package_manager_field:
|
||||||
|
name: 'Test packageManager field is respected (${{ matrix.version }}, ${{ matrix.os }})'
|
||||||
|
# Reproduces #227: when `packageManager` is set in package.json and no `version:` input is given,
|
||||||
|
# the action should install the version specified there.
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- macos-latest
|
||||||
|
- windows-latest
|
||||||
|
version:
|
||||||
|
- '9.15.5'
|
||||||
|
- '10.33.0'
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||||
|
|
||||||
|
- name: Set up package.json with packageManager field
|
||||||
|
run: echo '{"packageManager":"pnpm@${{ matrix.version }}"}' > package.json
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Run the action
|
||||||
|
uses: ./
|
||||||
|
|
||||||
|
- name: 'Test: exact version installed'
|
||||||
|
run: |
|
||||||
|
required='${{ matrix.version }}'
|
||||||
|
actual="$(pnpm --version)"
|
||||||
|
echo "pnpm version: ${actual}"
|
||||||
|
if [ "${actual}" != "${required}" ]; then
|
||||||
|
echo "Expected pnpm version ${required}, but got ${actual}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
test_dev_engines:
|
test_dev_engines:
|
||||||
name: Test with devEngines.packageManager
|
name: Test with devEngines.packageManager
|
||||||
|
|
||||||
|
|||||||
Vendored
+79
-79
File diff suppressed because one or more lines are too long
@@ -5,17 +5,18 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pnpm/exe": "11.0.0-rc.0"
|
"@pnpm/exe": "11.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/exe": {
|
"node_modules/@pnpm/exe": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.0.4.tgz",
|
||||||
"integrity": "sha512-lpa3BGQaCvH5BGS256VTyJ4+Ib2PiA5gipTfTs7MTL02utSYXcWarP0OeDhw++Cg/tgrCVRDYWcUjHOy/KNTtA==",
|
"integrity": "sha512-3OwYqbbj1KtuUqoMo5OEkY8nU/WutZ7L5ADFl0bbW9oyqU55U37aDqA3NJNSk28CyszNARfrjerAF2DW2TsV7w==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@reflink/reflink": "0.1.19"
|
"@reflink/reflink": "0.1.19",
|
||||||
|
"detect-libc": "^2.0.3"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"pn": "pn",
|
"pn": "pn",
|
||||||
@@ -27,18 +28,20 @@
|
|||||||
"url": "https://opencollective.com/pnpm"
|
"url": "https://opencollective.com/pnpm"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@pnpm/linux-arm64": "11.0.0-rc.0",
|
"@pnpm/linux-arm64": "11.0.4",
|
||||||
"@pnpm/linux-x64": "11.0.0-rc.0",
|
"@pnpm/linux-x64": "11.0.4",
|
||||||
"@pnpm/macos-arm64": "11.0.0-rc.0",
|
"@pnpm/linuxstatic-arm64": "11.0.4",
|
||||||
"@pnpm/macos-x64": "11.0.0-rc.0",
|
"@pnpm/linuxstatic-x64": "11.0.4",
|
||||||
"@pnpm/win-arm64": "11.0.0-rc.0",
|
"@pnpm/macos-arm64": "11.0.4",
|
||||||
"@pnpm/win-x64": "11.0.0-rc.0"
|
"@pnpm/macos-x64": "11.0.4",
|
||||||
|
"@pnpm/win-arm64": "11.0.4",
|
||||||
|
"@pnpm/win-x64": "11.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linux-arm64": {
|
"node_modules/@pnpm/linux-arm64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.0.4.tgz",
|
||||||
"integrity": "sha512-6JIbPFu8y7RevLIpOH/rhML9JtnLgAa9VVVGl8A02+sRdF415Q3cldz+N9Oh3ZNLi2JZWtvHRa5UE2FRFELOJQ==",
|
"integrity": "sha512-Bz7V2sFypoGHX/t5w/w7jnCw5DCK3C8s5q8whHJJ3iS5kRznX3Q1F4LwSjjy+lsi777fHyNIvD7qtNmdt9IKoA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -52,9 +55,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/linux-x64": {
|
"node_modules/@pnpm/linux-x64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.0.4.tgz",
|
||||||
"integrity": "sha512-5nSOBz07hmznMKJ88LaO/mk6BXCOMs3cA7VkwAz7ehWvtxeT1Dqez2Rnf5nK//BgEF1jQ8cgjff6MWaSmiYY8A==",
|
"integrity": "sha512-u0Yn1gytR1vKdPk6fYF500H8ZWQlj0cTuIQPp+5GYVPkMmA5bSw41RNIDPBfjDlE8ERmQWaQcrgmTcmTZ+n22A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -67,10 +70,48 @@
|
|||||||
"url": "https://opencollective.com/pnpm"
|
"url": "https://opencollective.com/pnpm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@pnpm/linuxstatic-arm64": {
|
||||||
|
"version": "11.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-arm64/-/linuxstatic-arm64-11.0.4.tgz",
|
||||||
|
"integrity": "sha512-0aitEcfhWNXNZhfJGt/kJaRvfcdtJzXZpV+toJN94kfawSJnhuawfnUSXMi/3m0G97HkJc7BH8rOz3sojUKt0g==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/pnpm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@pnpm/linuxstatic-x64": {
|
||||||
|
"version": "11.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pnpm/linuxstatic-x64/-/linuxstatic-x64-11.0.4.tgz",
|
||||||
|
"integrity": "sha512-xDJdeJ7D2YvDBy2/IH9lEqMKiSuZiV8190XKWOgQgxUGGeuW4z3j6Ewpl0S5bXsWuNjAgC+uCKp7Qp3P7cXAvw==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/pnpm"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@pnpm/macos-arm64": {
|
"node_modules/@pnpm/macos-arm64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.0.4.tgz",
|
||||||
"integrity": "sha512-X1KgttzXrspprRU4JV3y1rxraX/H8AzXhuO3tDJj01nbUhps0kkjdfJziLJFFYN74bwSO8DgFWmJ5w5V+Hp0Cg==",
|
"integrity": "sha512-dNR69jUARtGFuyyLE9VuyxhRUKC8MO/7/xIyAdeIMZAD5ej0Y/Ct0DYCa/FLbgFL1nXaXmp4+gRMfJBkkrKfQQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -84,9 +125,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/macos-x64": {
|
"node_modules/@pnpm/macos-x64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/macos-x64/-/macos-x64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/macos-x64/-/macos-x64-11.0.4.tgz",
|
||||||
"integrity": "sha512-Ra/CuHN7hrqScrl9w3zPDcMbY5AjAZMqTDKXL/1qP/GlY4lOJp24sQrH19y3pQGoUKoxlvVo0S4I29ZX2Wsf7A==",
|
"integrity": "sha512-RfyrxSBajeEU16dZsgFjbdagDV9F4HNCJfbBgm8IbGjL0+J95naM/VmCDLd6S3+1tISeI2MxtcyCxqjKJsD/BA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -100,9 +141,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/win-arm64": {
|
"node_modules/@pnpm/win-arm64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.0.4.tgz",
|
||||||
"integrity": "sha512-vum6DgUMO6hxYdhJBUkdNpnXW0TU/iKRUuZca6qgn/uckhaobENsuaN0pG1ga49G26I+jL5C8GfVBmdnRenm6w==",
|
"integrity": "sha512-fOQEv8b9KxZlUAxPPXSQQUUIrt2nY24Qwd4RzCPpatacBnsE4JIadlr/B4V5z2zFxmV7FdHr7nYUhv2RqTlY/w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -116,9 +157,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pnpm/win-x64": {
|
"node_modules/@pnpm/win-x64": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.0.4.tgz",
|
||||||
"integrity": "sha512-avY9Gz97pvcWO7nRL1AoJToVwljZIybX9A09buGpgrxTSTGjfs6bbFE+d+576ro02MHqhTn6qUnkCbPyKPcWrA==",
|
"integrity": "sha512-pErHAV8m3NZuPSeCmH3senTSHX0nwkH5lLzQSpiFuyt08hq8sqL3jDymT4ri9N7ixPN9RFZghZIiT3h+Croaew==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -189,6 +230,9 @@
|
|||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
@@ -205,6 +249,9 @@
|
|||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
@@ -221,6 +268,9 @@
|
|||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
@@ -237,6 +287,9 @@
|
|||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
@@ -277,6 +330,15 @@
|
|||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 10"
|
"node": ">= 10"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"node_modules/detect-libc": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,13 +5,13 @@
|
|||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pnpm": "11.0.0-rc.0"
|
"pnpm": "11.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pnpm": {
|
"node_modules/pnpm": {
|
||||||
"version": "11.0.0-rc.0",
|
"version": "11.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.0.0-rc.0.tgz",
|
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.0.4.tgz",
|
||||||
"integrity": "sha512-Hwjq3uoCXpFEjebV3uQqbJR2QlcADAQ6nja4/xKEmnLry5xl/BiFCUdHJJ5S9T2Lc62hGBRGu6gYZoEMik0/bA==",
|
"integrity": "sha512-CjlxZQB6AU7VKRmmHl9GxIubyohATDA+yuzGP2Le9WOJjTxril1epYEes5jP4DqwXaGlzpY/Em1erUwC+TuDww==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"pn": "bin/pnpm.mjs",
|
"pn": "bin/pnpm.mjs",
|
||||||
|
|||||||
+23
-6
@@ -29,7 +29,21 @@ export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
|||||||
await writeFile(path.join(dest, 'package.json'), packageJson)
|
await writeFile(path.join(dest, 'package.json'), packageJson)
|
||||||
await writeFile(path.join(dest, 'package-lock.json'), JSON.stringify(lockfile))
|
await writeFile(path.join(dest, 'package-lock.json'), JSON.stringify(lockfile))
|
||||||
|
|
||||||
const npmExitCode = await runCommand('npm', ['ci'], { cwd: dest })
|
// Append the action's node directory to PATH so npm's
|
||||||
|
// `#!/usr/bin/env node` shebang resolves on runners (e.g. GHE
|
||||||
|
// self-hosted) where node isn't already on PATH. Append (not
|
||||||
|
// prepend) so a user-installed toolchain on PATH — e.g. from a
|
||||||
|
// prior `setup-node` step — keeps precedence; otherwise the
|
||||||
|
// runner-bundled node would shadow it and pair the user's npm
|
||||||
|
// with a mismatched node version. npm itself is resolved via
|
||||||
|
// PATH — on the GitHub Actions runner it is not co-located with
|
||||||
|
// `process.execPath`.
|
||||||
|
const nodeDir = path.dirname(process.execPath)
|
||||||
|
// On Windows, the PATH key casing varies; search case-insensitively.
|
||||||
|
const pathKey = Object.keys(process.env).find(k => k.toUpperCase() === 'PATH') ?? 'PATH'
|
||||||
|
const currentPath = process.env[pathKey]
|
||||||
|
const npmEnv = { ...process.env, [pathKey]: currentPath ? currentPath + path.delimiter + nodeDir : nodeDir }
|
||||||
|
const npmExitCode = await runCommand('npm', ['ci'], { cwd: dest, env: npmEnv })
|
||||||
if (npmExitCode !== 0) {
|
if (npmExitCode !== 0) {
|
||||||
return npmExitCode
|
return npmExitCode
|
||||||
}
|
}
|
||||||
@@ -40,11 +54,13 @@ export async function runSelfInstaller(inputs: Inputs): Promise<number> {
|
|||||||
const pnpmHome = standalone && process.platform === 'win32'
|
const pnpmHome = standalone && process.platform === 'win32'
|
||||||
? path.join(dest, 'node_modules', '@pnpm', 'exe')
|
? path.join(dest, 'node_modules', '@pnpm', 'exe')
|
||||||
: path.join(dest, 'node_modules', '.bin')
|
: path.join(dest, 'node_modules', '.bin')
|
||||||
// pnpm expects PNPM_HOME/bin in PATH for global binaries (e.g. node
|
// PNPM_HOME/bin is where `pnpm self-update` places the target version
|
||||||
// installed via `pnpm runtime`). Add it first so the next addPath
|
// binary. It must have higher PATH precedence than pnpmHome (which
|
||||||
// (pnpmHome itself, which contains pnpm.exe) has higher precedence.
|
// contains the bootstrap binary) so the self-updated version is found
|
||||||
addPath(path.join(pnpmHome, 'bin'))
|
// first. The bootstrap pnpm is invoked via absolute path, not PATH,
|
||||||
|
// so this ordering does not affect the bootstrap step.
|
||||||
addPath(pnpmHome)
|
addPath(pnpmHome)
|
||||||
|
addPath(path.join(pnpmHome, 'bin'))
|
||||||
exportVariable('PNPM_HOME', pnpmHome)
|
exportVariable('PNPM_HOME', pnpmHome)
|
||||||
|
|
||||||
// Ensure pnpm bin link exists — npm ci sometimes doesn't create it
|
// Ensure pnpm bin link exists — npm ci sometimes doesn't create it
|
||||||
@@ -153,10 +169,11 @@ function getSystemNodeVersion(): Promise<{ major: number; minor: number }> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function runCommand(cmd: string, args: string[], opts: { cwd: string }): Promise<number> {
|
function runCommand(cmd: string, args: string[], opts: { cwd: string; env?: Record<string, string | undefined> }): Promise<number> {
|
||||||
return new Promise<number>((resolve, reject) => {
|
return new Promise<number>((resolve, reject) => {
|
||||||
const cp = spawn(cmd, args, {
|
const cp = spawn(cmd, args, {
|
||||||
cwd: opts.cwd,
|
cwd: opts.cwd,
|
||||||
|
env: opts.env,
|
||||||
stdio: ['pipe', 'inherit', 'inherit'],
|
stdio: ['pipe', 'inherit', 'inherit'],
|
||||||
shell: process.platform === 'win32',
|
shell: process.platform === 'win32',
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user