Commit Graph

28 Commits

Author SHA1 Message Date
Brandon Cheng
01914345d5 build: enable @typescript-eslint/no-import-type-side-effects (#10630)
* build: enable `@typescript-eslint/no-import-type-side-effects`

* build: disable `@typescript-eslint/consistent-type-imports`

* chore: apply fixes for `no-import-type-side-effects`

pnpm exec eslint "**/src/**/*.ts" "**/test/**/*.ts" --fix
2026-03-08 00:02:48 +01:00
Zoltan Kochan
fd511e4676 feat: isolated global packages (#10697)
**TLDR:** Global packages in pnpm v10 are annoying and slow because they all are installed to a single global package. Instead, we will now use a system that is similar to the one used by "pnpm dlx" (aka "pnpx").

Each globally installed package (or group of packages installed together) now gets its own isolated installation directory with its own `package.json`, `node_modules`, and lockfile. This prevents global packages from interfering with each other through peer dependency conflicts or version resolution shifts.

## Changes

- Add `@pnpm/global-packages` shared utilities package for scanning, hashing, and managing isolated global installs
- `pnpm add -g` creates isolated installs in `{pnpmHomeDir}/global/v11/{hash}/`
- `pnpm remove -g` removes the entire installation group containing the package
- `pnpm update -g` re-installs into new isolated directories and swaps symlinks
- `pnpm list -g` scans isolated directories to show installed global packages
- `pnpm outdated -g` checks each isolated installation for outdated dependencies
- `pnpm store prune` cleans up orphaned global installation directories

## Breaking changes

- `pnpm install -g` (no args) is no longer supported — use `pnpm add -g <pkg>`
- `pnpm link <pkg-name>` no longer resolves packages from the global store — only relative or absolute paths are accepted
- `pnpm link --global` is removed — use `pnpm add -g .` to register a local package's bins globally
2026-03-01 15:49:18 +01:00
Ryo Matsukawa
fa5a5c6c76 fix: dynamically calculate column widths in interactive update table (#10585)
* fix: dynamically calculate column widths in interactive update table

* test: implement copilot suggestions

* style: change order of functions

close #10316
2026-02-13 07:13:29 +01:00
Zoltan Kochan
a8fe2d5298 feat!: remove the server command (#10463) 2026-01-15 11:32:07 +01:00
Zoltan Kochan
71de2b3f2b feat!: remove use-node-version CLI option and pnpm.executionEnv.nodeVersion manifest field (#10373) 2025-12-27 22:41:53 +01:00
Zoltan Kochan
491a84fb26 feat: use ESM instead of commonjs (#9870) 2025-08-25 10:02:00 +02:00
Zoltan Kochan
facd7656e8 refactor: always use extensions in relative imports (#9878) 2025-08-19 15:25:11 +02:00
Zoltan Kochan
9362b5fb15 fix: updateConfig in pnpm-workspace.yaml should not be ignored (#9501)
* fix: updateConfig in pnpm-workspace.yaml should not be ignored

close #9500

* fix: reading executionEnv from pnpm-workspace.yaml
2025-05-08 12:24:43 +02:00
Zoltan Kochan
8a9f3a4835 refactor: rename pref to bare specifier (#9445) 2025-04-20 22:58:08 +02:00
Zoltan Kochan
56bb69b004 feat: dangerouslyAllowAllBuilds allows to enable the build of all dependencies (#9440)
close #9102
2025-04-20 13:13:11 +02:00
btea
d9d7607cc1 fix: update choice list not show deprecated pkg (#9214)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2025-03-06 02:34:23 +01:00
Zoltan Kochan
b8bda0ac40 fix: global update should not fail if no packages are found (#8829)
ref #7898
2024-12-04 10:47:38 +01:00
Khải
24ad47cfb8 refactor: replace array.reduce (#8537) 2024-09-18 04:41:35 +02:00
Khải
0ef168b77d feat: per-package node version (#8277)
close #6720
2024-07-13 14:08:57 +02:00
Zoltan Kochan
0406d4ad3d refactor: use a branded type for project root dir paths (#8272) 2024-07-04 13:13:34 +02:00
Zoltan Kochan
dd00eeb18c refactor: normalize dir field names across project objects (#8262) 2024-07-01 11:27:04 +02:00
Zoltan Kochan
c9db742824 fix: update typescript to v5.4 (#7905) 2024-04-12 14:03:45 +02:00
Khải
e8fc6139ea refactor(install): type checking perf (#7877) 2024-04-09 16:23:44 +02:00
Khải
316c18aba4 feat(cli): forbid combining specs and --latest (#7567)
---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-01-27 16:37:17 +01:00
Khải
0ec0a44da7 fix(update): stop downgrading prereleases (#7466)
close #7436

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-01-27 14:41:58 +01:00
Andrey Sitnik
619e9ed6f4 fix: update --interactive for light theme (#7454)
close #7439
2023-12-24 01:48:19 +01:00
await-ovo
bc83798d46 refactor(plugin-commands-installation): optimize cli output after select dependencies when update (#7125)
* refactor(plugin-commands-installation): optimize cli output after select dependencies when update

* docs: add changeset

* chore: set dep group choice to disabled

* fix: test case

* feat: filter out dep group choice in prompt output

* docs: update changesets

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-10-13 22:36:08 +03:00
Clark Tomlinson
81e5ada3a9 feat(interactive-update): group dependancies by type, add package url column (#6978)
* feat(interactive-update): group dependancies by type, add package url column

Partially resolves https://github.com/pnpm/pnpm/issues/6314

* refactor: update

* docs: update changeset

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2023-08-30 22:26:39 +03:00
Zoltan Kochan
0b830f947a fix: pnpm update --global --latest (#6671)
close #3779
2023-06-14 07:41:16 +03:00
await-ovo
04a279881a fix: should respect ignore patterns in updateConfig.ignoreDependencies (#6590)
close #6548
2023-05-26 03:14:44 +03:00
Zoltan Kochan
ee61ca4cb7 style: update eslint (#6236) 2023-03-18 14:57:29 +02:00
Zoltan Kochan
05f835446e fix: update --no-save with resolution-mode=lowest-direct 2023-02-07 05:13:23 +02:00
Zoltan Kochan
4ca53b0b50 refactor: group projects in different subdirectories (#5659) 2022-11-20 01:35:22 +02:00