Пакет NPM, включающий .DS_Store

#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:

В соответствии с npm,

Если файла .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..