0x80 / isolate-package

Isolate a monorepo package with its internal dependencies to form a self-contained directory with a pruned lockfile
MIT License
121 stars 13 forks source link

Isolate fails due to missing pnpm on Windows #92

Closed drussov closed 4 months ago

drussov commented 4 months ago

The reason is that getVersion function tries to execute execSync('pnpm --version') to detect presence of pnpm. But it throws exception if command writes into stderr - which is the case under windows.

https://github.com/0x80/isolate-package/blob/e9372344ae864010df94b90f44886db46e63e201/src/lib/package-manager/helpers/infer-from-files.ts#L30

info Using isolate-package version 1.16.0
'pnpm' is not recognized as an internal or external command,
operable program or batch file.
Error: Command failed: pnpm --version
'pnpm' is not recognized as an internal or external command,
operable program or batch file.

    at checkExecSyncError (node:child_process:890:11)
    at execSync (node:child_process:962:15)
    at getVersion (file:///C:/Users/<reducted>/node_modules/isolate-package/src/lib/package-manager/helpers/infer-from-files.ts:30:18)
    at inferFromFiles (file:///C:/Users/<reducted>/node_modules/isolate-package/src/lib/package-manager/helpers/infer-from-files.ts:12:21)
    at detectPackageManager (file:///C:/Users/<reducted>/node_modules/isolate-package/src/lib/package-manager/index.ts:36:46)
    at isolate (file:///C:/Users/<reducted>/node_modules/isolate-package/src/isolate.ts:106:26)
    at run (file:///C:/Users/<reducted>/node_modules/isolate-package/src/isolate-bin.ts:9:3)