Репликация поведения `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 будет жаловаться на циклические задержки, поэтому установите его в другом проекте.