UNPKG

16.2 kBMarkdownView Raw
1# pnpm
2
3## 5.5.4
4
5### Patch Changes
6
7- Any ESLint related dependencies are publicly hoisted by default (#2799).
8- `pnpm install -r` should recreate the modules directory
9 if the hoisting patterns were updated in a local config file.
10 The hoisting patterns are configured via the `hoist-pattern`
11 and `public-hoist-pattern` settings (#2802).
12- The same code should run when running some command inside a project directory,
13 or when using `--filter` to select a specific workspace project (#2805).
14
15 This fixes an issue that was happening when running `pnpm add pkg` inside a workspace.
16 The issue was not reproducible when running `pnpm add pkg --filter project` (#2798).
17
18## 5.5.3
19
20### Patch Changes
21
22- pnpm should not always suggest to reinstall the modules directory, when `public-hoist-pattern` is set to nothing (#2783).
23- When searching for a suitable directory for the global executables, search for node, npm, pnpm files only, not directories (#2793).
24
25## 5.5.2
26
27### Patch Changes
28
29- `pnpm publish -r` does not publish packages with the temporary `pnpm-temp` distribution tag (#2686).
30- Print the authorization settings (with hidden private info), when an authorization error happens during fetch (#2774).
31
32## 5.5.1
33
34### Patch Changes
35
36- Stop looking for project root not only when `package.json` or `node_modules` is found
37 but also on `package.json5` and `package.yaml`.
38
39## 5.5.0
40
41### Minor Changes
42
43- Allow unknown options that are prefixed with `config.`
44
45 `pnpm install --foo` would fail with an unknown option error.
46
47 `pnpm install --config.foo` will work fine, setting the `npm_config_foo` environment variable for child lifecycle events.
48
49### Patch Changes
50
51- Don't leave empty temp directories in home directory (#2749).
52- Reunpack the contents of a modified tarball dependency (#2747).
53- `pnpm list -r` should print the legend only once.
54- Don't read the `.npmrc` file that is outside the workspace.
55- Hoisting should work in a workspace that has no root project.
56
57## 5.4.12
58
59### Patch Changes
60
61- Fixing regression of v5.4.5: the `pnpm update` command should update the direct dependencies of the project.
62
63## 5.4.11
64
65### Patch Changes
66
67- Fixing regression of v5.4.10: a warning during `package.json` save.
68
69## 5.4.10
70
71### Patch Changes
72
73- Don't add a trailing new line to `package.json` if no trailing new line was present in it (#2716).
74- Installing a new dependency with a trailing `@` (#2737).
75- Ignore files in the modules directory (#2730).
76
77## 5.4.9
78
79### Patch Changes
80
81- Get the right package name of a package resolved from GitHub registry (#2734).
82- Registry set in lockfile resolution should not be ignored (#2733).
83- Workspace range prefix should be removed from `peerDependencies` before publish (#2467).
84- Use the same versions of dependencies across the pnpm monorepo.
85- Fix lockfile not updated when remove dependency in project with readPackage hook (#2726).
86
87## 5.4.8
88
89### Patch Changes
90
91- `pnpm audit --audit-level high` should not error if the found vulnerabilities are low and/or moderate (#2721).
92- When purging an incompatible modules directory, don't remove the actual directory, just the contents of it (#2720).
93
94## 5.4.7
95
96### Patch Changes
97
98- `pnpm outdated` should exit with exit code 1, when there are outdated dependencies.
99- `pnpm audit` should exit with exit code 1, when vulnerabilities are found.
100- `pnpm install --prod --frozen-lockfile` should not fail if there are dev dependencies used as peer dependencies of prod dependencies (#2711).
101
102## 5.4.6
103
104### Patch Changes
105
106- `pnpm root -g` should not fail if pnpm has no write access to the global bin directory (#2700).
107
108## 5.4.5
109
110### Patch Changes
111
112- `pnpm update dep --depth Infinity` should only update `dep`.
113- `pnpm publish -r --dry-run` should not publish anything to the registry.
114
115## 5.4.4
116
117### Patch Changes
118
119- `pnpm root -g` should not fail if pnpm has no write access to the global bin directory (#2700).
120- Suggest to use pnpm to update pnpm.
121
122## 5.4.3
123
124### Patch Changes
125
126- Should not print colored output when `color` is set to `never`. This was an issue in commands that don't use `@pnpm/default-reporter`. Commands like `pnpm list`, `pnpm outdated`.
127- Changes that are made by the `readPackage` hook are not saved to the `package.json` files of projects.
128- Allow the `--registry` option with the `pnpm audit` command.
129- Allow the `--save-workspace-protocol` option.
130- Don't use inversed colors to highlight search results in `pnpm list`, `pnpm why`.
131
132## 5.4.2
133
134### Patch Changes
135
136- `pnpm install` should work as `pnpm install --filter {.}...`, when `recursive-install` is `false`.
137- On first install, print an info message about the package importing (hard linking, cloning, or copying) method
138 and the location of the virtual store and the content-addressable store.
139
140## 5.4.0
141
142### Minor Changes
143
144- Installation of private Git-hosted repositories via HTTPS using an auth token.
145
146 ```text
147 pnpm add git+https://{token}:x-oauth-basic@github.com/SOME_ORG/SOME_PRIVATE_REPO.git
148 ```
149
150- A new setting called `recursive-install` was added. When it is set to `false`, `pnpm install` will only install dependencies in current project, even when executed inside a monorepo.
151
152 If `recursive-install` is `false`, you should explicitly run `pnpm install -r` in order to install all dependencies in all workspace projects.
153
154- Projects that don't have a `"version"` field may be installed as dependencies of other projects in the workspace, using the `"workspace:0.0.0"` specifier.
155
156 So if there's `foo` in the repository that has no version field, `bar` may have it as a dependency:
157
158 ```json
159 "dependencies": {
160 "foo": "workspace:0.0.0"
161 }
162 ```
163
164- By default, all ESLint plugin are hoisted to the root of `node_modules`.
165
166 `eslint-plugin-*` added as one of the default patterns of `public-hoist-pattern`.
167
168- Improved error message on workspace range resolution error.
169
170 Now the path to the project is printed, where the error originated.
171
172### Patch Changes
173
174- `pnpm prune` should accept the `--no-optional` and `--no-dev` options.
175
176## 5.3.0
177
178### Minor Changes
179
180- Any unknown command is assumed to be a script. So `pnpm foo` becomes `pnpm run foo`.
181
182### Patch Changes
183
184- Fix installation of packages via repository URL. E.g., `pnpm add https://github.com/foo/bar`.
185
186## 5.2.9
187
188### Patch Changes
189
190- `run --silent <cmd>` should only print output of the command and nothing from pnpm (#2660).
191- installing a new optional dependency that has an option dependency should not fail (#2663).
192
193## 5.2.8
194
195### Patch Changes
196
197- Fixing some issues with finding the target directory for command files during global installation.
198
199## 5.2.7
200
201### Patch Changes
202
203- Fixing some issues with finding the target directory for command files during global installation.
204
205## 5.2.6
206
207### Patch Changes
208
209- Use the proxy settings not only during resolution but also when fetching tarballs.
210
211## 5.2.5
212
213### Patch Changes
214
215- Fixing some regressions with global bin directory caused by v5.2.4.
216
217## 5.2.4
218
219### Patch Changes
220
221- Find the proper directory for linking executables during global installation.
222- Fix `pnpm list --long`. This was a regression in pnpm v5.0.0.
223
224## 5.2.3
225
226### Patch Changes
227
228- Own implementation of the `pnpm bin` command added (previously it was passed through to `npm bin`).
229- Read the correct PATH env variable on all systems, when running pnpx. One Windows the correct path name might be Path or other.
230- Install the pnpm bin executable to the directory of the globally installed pnpm executable, when running `pnpm add -g pnpm`.
231- `pnpm store prune` should not fail when the store has some foreign files.
232- `pnpm unlink --global` should unlink bin files from the global executables directory.
233
234## 5.2.2
235
236### Patch Changes
237
238- Don't remove skipped optional dependencies from the current lockfile on partial installation.
239
240## 5.2.1
241
242### Patch Changes
243
244- Hoisting should not fail if some of the aliases cannot be hoisted due to issues with the lockfile.
245
246## 5.2.0
247
248### Minor Changes
249
250- Added a new setting: `public-hoist-pattern`. This setting can be overwritten by `shamefully-hoist`. The default value of `public-hoist-pattern` is `types/*`.
251
252 If `shamefully-hoist` is `true`, `public-hoist-pattern` is set to `*`.
253
254 If `shamefully-hoist` is `false`, `public-hoist-pattern` is set to nothing.
255
256 `public-hoist-pattern` example configuration (through a `.npmrc` file):
257
258 ```
259 public-hoist-pattern[]=@types/*
260 public-hoist-pattern[]=@angular/*
261 ```
262
263 Related PR: #2631
264
265- Don't request the full metadata of package when running `pnpm outdated` or `pnpm publish -r` (#2633)
266
267## 5.1.8
268
269### Patch Changes
270
271- Don't fail when the installed package's manifest (`package.json`) starts with a byte order mark (BOM). This is a fix for a regression that appeared in v5.0.0 (#2629).
272
273## 5.1.7
274
275### Patch Changes
276
277- When `link-workspace-packages` is `false`, filtering by dependencies/dependents should ignore any packages that are not specified via `workspace:` ranges (#2625).
278- Print a "Did you mean" line under the unknown option error with any option that look similar to the typed one (#2603).
279
280## 5.1.6
281
282### Patch Changes
283
284- It should be possible to install a tarball through a non-standard URL endpoint served via the registry domain.
285
286 For instance, the configured registry is `https://registry.npm.taobao.org/`.
287 It should be possible to run `pnpm add https://registry.npm.taobao.org/vue/download/vue-2.0.0.tgz`
288
289 Related issue: #2549
290
291## 5.1.5
292
293### Patch Changes
294
295- Print a warning when an HTTP request fails (#2615).
296- Perform headless installation when dependencies should not be linked from the workspace, and they are not indeed linked from the workspace (#2619).
297
298## 5.1.4
299
300### Patch Changes
301
302- Fix too long file name issue during write to the content-addressable store (#2605).
303
304## 5.1.3
305
306### Patch Changes
307
308- Don't remove authorization headers when redirecting requests to the same host (#2602).
309
310## 5.1.2
311
312### Patch Changes
313
314- fix an issue with node-gyp failure. Downgrade uuid.
315
316## 5.1.1
317
318### Patch Changes
319
320- 86d21759d: Print a meaningful error when pnpm is executed with Node.js v13.0-v13.6
321
322## 5.1.0
323
324### Minor Changes
325
326- ffddf34a8: Add new global option called `--stream`. (#2595)
327
328 When used, the output from child processes is streamed to the console immediately, prefixed with the originating package directory. This allows output from different packages to be interleaved.
329
330- The `run` and `exec` commands may use the `--parallel` option.
331
332 `--parallel` completely disregards concurrency and topological sorting,
333 running a given script immediately in all matching packages
334 with prefixed streaming output. This is the preferred flag
335 for long-running processes such as watch run over many packages.
336
337 For example: `pnpm run --parallel watch`
338
339 PR #2599
340
341- Color the child output prefixes (#2598)
342
343### Patch Changes
344
345- A recursive run should not rerun the same package script which started the lifecycle event (#2528).
346- Fixing a regression on Windows. Fall back to copying if linking fails (429c5a560b7a32b0261e471ece349ec136ab7f4d)
347
348## 5.0.2
349
350### Patch Changes
351
352- 2f9c7ca85: Fix a regression introduced in pnpm v5.0.0.
353 Create correct lockfile when the package tarball is hosted not under the registry domain.
354- 160975d62: This fixes a regression introduced in pnpm v5.0.0. Direct local tarball dependencies should always be reanalized on install.
355
356## 5.0.1
357
358### Patch Changes
359
360- 81b537003: The usage of deprecated options should not crash the CLI. When a deprecated option is used (like `pnpm install --no-lock`), just print a warning.
361- 187615f87: Fix installation of git-hosted packages. This was a regression in v5.
362
363## 5.0.0
364
365### Major Changes
366
367- 🚀 33% faster installation times vs pnpm v4.
368
369 In some cases, 2 times faster than Yarn v1! ([performance diff of pnpm v4 vs v5](https://github.com/pnpm/benchmarks-of-javascript-package-managers/commit/5328f0165628b0ee5e22a8a433357d65bee75d64))
370
371 | action | cache | lockfile | node_modules | npm | pnpm | Yarn | Yarn PnP |
372 | ------- | ----- | -------- | ------------ | ----- | ----- | ----- | -------- |
373 | install | | | | 43.3s | 17.5s | 36.7s | 28.6s |
374 | install | ✔ | ✔ | ✔ | 7s | 1.5s | 735ms | n/a |
375 | install | ✔ | ✔ | | 18.3s | 7.8s | 10.5s | 1.8s |
376 | install | ✔ | | | 24.8s | 10.9s | 22.2s | 12.1s |
377 | install | | ✔ | | 23.2s | 15.2s | 22.4s | 13.4s |
378 | install | ✔ | | ✔ | 6.4s | 1.8s | 17.1s | n/a |
379 | install | | ✔ | ✔ | 7.3s | 1.5s | 735ms | n/a |
380 | install | | | ✔ | 6.4s | 3.1s | 33.2s | n/a |
381 | update | n/a | n/a | n/a | 7s | 14.5s | 42.6s | 27.6s |
382
383 All the benchmarks are [here](https://github.com/pnpm/benchmarks-of-javascript-package-managers/tree/5328f0165628b0ee5e22a8a433357d65bee75d64).
384
385- A content-addressable filesystem is used to store packages on the disk.
386
387 pnpm v5 uses a content-addressable filesystem to store all files from all module directories on a disk. If you depend on different versions of lodash, only the files that differ are added to the store. If lodash has 100 files, and a new version has a change only in one of those files, pnpm update will only add 1 new file to the storage.
388
389 For more info about the structure of this new store, you can check the [GitHub issue about it](https://github.com/pnpm/pnpm/issues/2470).
390
391 This change was inspired by [dupe-krill](https://github.com/kornelski/dupe-krill) and the content-addressable storage of Git.
392
393- Reduced directory nesting in the virtual store directory.
394
395 In pnpm v4, if you installed `foo@1.0.0`, it was hard-linked into `node_modules/.pnpm/registry.npmjs.org/foo/1.0.0/`.
396
397 In pnpm v5, it will be hard-linked into `node_modules/.pnpm/foo@1.0.0/`. This new structure of the virtual store directory drastically reduces the number of directories pnpm has to create. Hence, there are fewer filesystem operations, which improves speed.
398
399- `pnpm store usages` removed.
400
401 This command was using information from the `store.json` files, which is not present in the new content-addressable storage anymore.
402
403- The `independent-leaves` setting has been removed.
404
405 When hoisting was off, it was possible to set the `independent-leaves` setting to `true`. When `true`, leaf dependencies were symlinked directly from the global store. However, we turned hoisting on by default for pnpm v4, so this feature has no future at the moment.
406
407- The `resolution-strategy` setting has been removed.
408
409 By default, the `fewer-dependencies` resolution strategy is used. It was possible to select a `fast` resolution strategy. This setting is deprecated to simplify future improvements to the resolution algorithm.
410
411- The store and the modules directory are not locked.
412
413 We are not using directory locks anymore. So the `--no-lock` option will throw an error. Some users had [issues](https://github.com/pnpm/pnpm/issues/594) with locking. We have confidence that pnpm will never leave either node_modules or the store in a broken state,
414 so we removed locking.
415
416- `git-checks` is `true` by default.
417
418 By default, `pnpm publish` will make some checks before actually publishing a new version of your package.
419
420 The next checks will happen:
421
422 - The current branch is your publish branch. The publish branch is `master` by default. This is configurable through the `publish-branch` setting.
423 - Your working directory is clean (there are no uncommitted changes).
424 - The branch is up-to-date.
425
426 If you don't want this checks, run `pnpm publish --no-git-checks` or set this setting to `false` via a `.npmrc` file.
427
428- In case of a crash, the debug file will be written to `node_modules/.pnpm-debug.log` (not to `pnpm-debug.log` as in v4 and earlier).
429
430### Minor Changes
431
432- The `link-workspace-packages` setting may now be set to `deep`.
433
434 When `link-workspace-packages` is set to `deep`, packages from the workspace will be linked even to subdependencies.
435
\No newline at end of file