#npm #pack
#npm #пакет
Вопрос:
Согласно документам https://docs.npmjs.com/files/package.json#files , если вы поместите каталог в files
раздел package.json, определенные файлы внутри указанного каталога будут исключены, несмотря ни на что, включая .DS_Store. Кроме того, файлы в .gitignore или .npmignore должны исключать файлы внутри любых каталогов, указанных в разделе files package.json.
Моя запись package.json files
есть ["src", "bin"]
, но файлы.DS_Store в src все еще попадают в архив при запуске npm pack
. .DS_Store также есть в .gitignore, но предполагается, что npm исключает его независимо от настроек.
README.md файл правильно включается автоматически, но я не могу удалить .DS_Store без явного указания всех расширений файлов, которые я хочу включить в files
раздел package.json.
Я попробовал NPM 6.4.1 и 6.9.0 и получил те же результаты, я что-то здесь упускаю?
Комментарии:
1.Возможно, игнорируется только корень
.DS_Store
— что, если вы напишете явный.npmignore
?2.Было это с npm 8.0.0. Решением было иметь
files
[ "src/" ]
вместо[ "src/**" ]
— это может зависеть от конкретной версии. Подробнее о предыстории можно прочитать в npm.community/t /ds-store-files-show-up-after-npm-publish/831
Ответ №1:
Если файла .npmignore нет, но есть файл .gitignore, то npm проигнорирует материал, соответствующий файлу .gitignore. Если вы хотите включить что-то, что исключено вашим файлом .gitignore, вы можете создать пустой файл .npmignore, чтобы переопределить его.
Я предлагаю вам создать новый файл .npmignore, чтобы переопределить ваш .gitignore. Пустой .npmignore по умолчанию будет игнорировать .DS_Store, как вы упомянули выше. у npm могут возникнуть некоторые проблемы с синтаксическим анализом вашего .gitignore.
Комментарии:
1. К сожалению, это тоже не помогает. Я даже попытался удалить оба
.npmignore
и .gitignore` и получил те же результаты.2. Я исключил
.DS_Store
оба.gitignore
и.npmignore
файлы, но это не сработало.3.
.npmignore
и.gitignore
оба находятся рекурсивно. Убедитесь, что у вас есть только по одному из каждого файла во всем каталоге вашего пакета. Сосредоточьтесь на том, чтобы начать.npmignore
работать, и используйтеnpm pack
команду локально для устранения неполадок, какие файлы включены / исключены. При публикации вашего пакета используется та же логика, что иnpm pack
. Если у вас по-прежнему возникают проблемы, пожалуйста, опубликуйте все дерево каталогов вашего пакета.4. Я видел эту проблему, вам нужно будет убедиться, что .gitignore находится внутри папок, которые вы включаете в пакет npm. У меня есть раздел ‘flles’ в package.json, и для каждой экспортированной папки в этом списке у меня есть .gitignore..