# Проверка npm-пакетов на лишние файлы и утечки

Проверка реального содержимого npm-пакета перед установкой или публикацией. Помогает найти source map, тесты, конфиги и другие лишние файлы.

## Скачать пакет без установки

- [ ] Откройте терминал в отдельной пустой папке.
- [ ] Скачайте архив нужного пакета без установки:

```bash
npm pack имя-пакета
```

- [ ] Запишите точное имя созданного файла `.tgz` и версию пакета.
- [ ] Не используйте `npm install` для этой проверки: нужен именно публикуемый архив.

## Проверить содержимое

- [ ] Выведите дерево файлов из архива:

```bash
tar -tzf имя-файла.tgz
```

- [ ] Проверьте список на наличие:

- файлов `*.map`;
- тестов;
- конфигураций;
- внутренних заметок;
- исходников и служебных файлов, которые не нужны пользователю пакета.

- [ ] Не ориентируйтесь только на страницу пакета: проверяйте содержимое самого `.tgz`.

## Проверить размер

- [ ] Посмотрите размер архива:

```bash
ls -lh имя-файла.tgz
```

- [ ] Сравните размер с предыдущей или ожидаемой версией.
- [ ] При резком росте размера повторно изучите дерево файлов.

- В разобранном примере лишние файлы добавили 59,8 МБ.
- Большой размер сам по себе не доказывает утечку.

## Закрыть утечку перед публикацией

- [ ] Добавьте source map в `.npmignore`:

```gitignore
*.map
```

- [ ] Если в `package.json` используется поле `files`, убедитесь, что маски не включают `.map`.
- [ ] Не ограничивайтесь удалением файлов из папки сборки: следующая сборка может создать их снова.
- [ ] Повторно выполните `npm pack` и `tar -tzf`, затем убедитесь, что исключённые файлы исчезли.
- [ ] Снова проверьте размер итогового `.tgz`.

---

Источник: https://localhost:3000/m/chek-list-proverit-npm-paket-na-lishnie-fayly-i-utechki
