0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-04-15 03:02:51 -05:00
verdaccio/src
贾顺名(Jarvis) b5ac3c0f28
fix: publish with deprecated field (#2771)
* fix: publish with deprecated field by @Jiasm 

When publish with deprecated field in `package.json`, that will make all old versions miss.

Examples:

I have package@1.0.0 and package@1.0.1.

When `npm deprecate package@1.0.0 "xxx"`, Verdaccio will recived:

```json
{
  "name": "module_name",
  "version": {
    "1.0.0": {
      "deprecated": "xxx"
    },
    "1.0.1": {}
  }
}
```

⬆️ This make sense

But then publish new version with @1.0.2.

Verdaccio will recived:

```json
{
  "name": "module_name",
  "version": {
    "1.0.2": {
      "deprecated": "xxx" // if we set this field in package.json
    },
  }
}
```

and that metadata will override package.json, make old version miss.

migrate from #2766

* remove spaces

* fix: ignore empty package case

* fix: cover normal unpublish case

* refactor: Optimize check logic for lazy execution

* test: upgrade Jest Snapshot

* fix: set storage.getPackage `uplinksLook: false`.

* feat: use `_attachments` to distinguish deprecate

* test: rollback test snapshots

* test: rollback jest snapshots

* test: publish new version with deprecate field

* test: remove space
2021-12-16 16:17:52 +01:00
..
api fix: publish with deprecated field (#2771) 2021-12-16 16:17:52 +01:00
config chore: update eslint dependencies (#2126) 2021-03-14 08:42:46 +01:00
lib fix: markdown anchor links in package readme.md broken #2712 2021-12-01 23:33:25 +01:00
utils chore: update eslint dependencies (#2126) 2021-03-14 08:42:46 +01:00
index.ts chore: update eslint dependencies (#2126) 2021-03-14 08:42:46 +01:00