Как составить список пакетов и зависимостей приложения с их версиями - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел бы перечислить все пакеты с их версиями, в настоящее время я делаю npm list depth=100 Я просто положил 100, чтобы он возвращал все зависимости в пакете.

В настоящее время я получаю что-токак это:

├─┬ async@2.6.1
│ └── lodash@4.17.11
├─┬ aws-sdk@2.398.0
│ ├─┬ buffer@4.9.1
│ │ ├── base64-js@1.3.0
│ │ ├── ieee754@1.1.8 deduped
│ │ └── isarray@1.0.0
│ ├── events@1.1.1
│ ├── ieee754@1.1.8
│ ├── jmespath@0.15.0
│ ├── querystring@0.2.0
│ ├── sax@1.2.1
│ ├─┬ url@0.10.3
│ │ ├── punycode@1.3.2
│ │ └── querystring@0.2.0 deduped
│ ├── uuid@3.3.2 deduped
│ └─┬ xml2js@0.4.19
│   ├── sax@1.2.1 deduped
│   └── xmlbuilder@9.0.7
├─┬ aws-sdk-mock@4.3.0
│ ├── aws-sdk@2.398.0 deduped
│ ├─┬ sinon@7.2.3
│ │ ├─┬ @sinonjs/commons@1.3.0
│ │ │ └── type-detect@4.0.8
│ │ ├─┬ @sinonjs/formatio@3.1.0
│ │ │ └── @sinonjs/samsam@3.1.0 deduped
│ │ ├─┬ @sinonjs/samsam@3.1.0
│ │ │ ├── @sinonjs/commons@1.3.0 deduped
│ │ │ ├── array-from@2.1.1
│ │ │ └── lodash.get@4.4.2
│ │ ├── diff@3.5.0
│ │ ├── lolex@3.0.0
│ │ ├─┬ nise@1.4.8
│ │ │ ├── @sinonjs/formatio@3.1.0 deduped
│ │ │ ├── just-extend@4.0.2
│ │ │ ├── lolex@2.7.5
│ │ │ ├─┬ path-to-regexp@1.7.0
│ │ │ │ └── isarray@0.0.1
│ │ │ └── text-encoding@0.6.4
│ │ └─┬ supports-color@5.5.0
│ │   └── has-flag@3.0.0
│ └── traverse@0.6.6

Я хотел бы сделать его плоским, как эти

async@2.6.1, lodash@4.17.11, ...

Я хотел бы повторить на каждом пакете и npm view {package-name} dist.tarball затем опубликовать это в нашемзакрытый артефакт с использованием npm publish <private-artifact>

Как мне создать для этого сценарий bash?

1 Ответ

0 голосов
/ 21 февраля 2019

Для плоской задачи попробуйте:

npm list |awk '{print $NF}'|tr "\n" ","

Для задачи просмотра:

for package in $(npm list |awk '{print $NF}') do npm view $package done

Опубликовать:

for package in $(npm list |awk '{print $NF}') do npm publish $package done

...