Репликация поведения `npm pack`

Я пытаюсь повторить поведение npm pack поскольку у него есть ограничение, когда он не пишет в стандартный вывод, он может писать только в локальный файл (см. эту проблему: https://github.com/npm/npm/issues/12039).

Теперь я могу сменить текущий каталог и написать в stdout так:

tar --exclude='./node_modules/' -cv . | gzip > archive.tar.gz

Однако, когда вы извлекаете npm pack tarballs, все содержимое вашего пакета должно находиться в каталоге с именем 'package',

Поэтому мой вопрос - как я могу архивировать текущий каталог, но поместить текущий каталог в каталог с именем 'package' прежде чем он будет заархивирован?

Есть ли tar-флаг, который позволяет вам это делать?

1 ответ

Я проделал некоторую работу, и в ходе моего тестирования npm примет tarball со всем в корне или со всем в подкаталоге, называемом "package".

Чтобы проверить приведенную выше теорию, вы можете смонтировать каталог проекта NPM с помощью:

tar --exclude='node_modules' -c . > archive.tar

затем установите его где-нибудь еще с

  npm install /path/to/archive.tar

Вы не можете установить в том же проекте, но NPM будет жаловаться на циклические задержки, поэтому установите его в другом проекте.

Другие вопросы по тегам