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 |