Как отладить.npmignore?

Как файлы пакета (они будут опубликованы) могут быть перечислены для отладки записей в .npmignore ?

Я ищу что-то вроде эквивалента git ls-files за .gitignore,

Единственный способ, который я нашел, - это упаковать пакет и затем перечислить архив, который я нахожу немного неуклюжим:

npm pack
tar -tzf <package-id>.tgz

1 ответ

Решение

Как заметил в комментарии Майк "Pomax" Камерманс, тот факт, что .npmignore а также .gitignore Использовать тот же синтаксис можно с помощью:

git ls-files -co --exclude-per-directory=.npmignore

Приведенная выше команда перечисляет именно те файлы, которые не игнорируются npm в соответствии с .npmignore файл. (Кроме того, npm автоматически игнорирует некоторые другие записи, такие как node_modules.)

Гит ls-files Команда обычно перечисляет комбинации файлов в рабочем каталоге и индексе.

  • -c опция говорит показать кешированные файлы
  • -o показать "другие", то есть неотслеживаемые файлы
  • --exclude-per-directory=.npmignore использование .npmignore как имя файлов игнорируемых записей

РЕДАКТИРОВАТЬ: так как у подхода выше есть куча исключений - файлы, которые никогда или никогда не будут включены независимо от содержимого .npmignore - Я считаю это ненадежным. Следующая команда тяжелая, но надежная:

file_name=$(npm pack) && tar -ztf $file_name && rm $file_name

Это упаковывает проект, перечисляет файлы пакета и в конце удаляет созданный пакет.

npm pack --dry-run распечатывает, что будет включено

logger ❯ npm pack --dry-run
npm notice
npm notice   @supercollider.js/logger@1.0.0
npm notice === Tarball Contents ===
npm notice 817B  package.json
npm notice 199B  README.md
npm notice 1.7kB lib/index.d.ts
npm notice 693B  lib/index.d.ts.map
npm notice 3.9kB lib/index.js
npm notice 2.9kB lib/index.js.map
npm notice === Tarball Details ===
npm notice name:          @supercollider.js/logger
npm notice version:       1.0.0
npm notice filename:      supercollider.js-logger-1.0.0.tgz
npm notice package size:  3.0 kB
npm notice unpacked size: 10.2 kB
npm notice shasum:        6c60400e1d61723ce3d7705bb3a8a9a907b7d83b
npm notice integrity:     sha512-+1tQZMPQr3cAp[...]zPu6R/BqYdIJQ==
npm notice total files:   6
npm notice
supercollider.js-logger-1.0.0.tgz
Другие вопросы по тегам