Cli: Файлы .DS_Store появляются после публикации npm

Созданный на 8 нояб. 2019  ·  4Комментарии  ·  Источник: npm/cli

  Original bug ticket: [https://npm.community/t/831](https://npm.community/t/831)
  Originally filed: 2018-07-23T20:19:41.160Z
Bug Community

Самый полезный комментарий

Я сталкиваюсь с этим в npm 6.13.0. pack будет включать файлы, игнорируемые .gitignore и / или .npmignore если они указаны в files . Это наиболее заметно, когда эти файлы находятся в каталоге, в который желательно включить другие файлы в этом каталоге.

Один обходной путь, который, кажется, работает для меня, - это добавить "!.DS_Store" в качестве последней записи в массиве files (порядок, кажется, имеет значение).

Все 4 Комментарий

Я сталкиваюсь с этим в npm 6.13.0. pack будет включать файлы, игнорируемые .gitignore и / или .npmignore если они указаны в files . Это наиболее заметно, когда эти файлы находятся в каталоге, в который желательно включить другие файлы в этом каталоге.

Один обходной путь, который, кажется, работает для меня, - это добавить "!.DS_Store" в качестве последней записи в массиве files (порядок, кажется, имеет значение).

Я думаю, что вижу нечто подобное с npm 6.12.1: My .gitignore указывает исключить npm-shrinkwrap.json и каталог /build/ . package.json явно перечисляет каталог build в разделе files . В рамках процедуры сборки я создаю npm-shrinkwrap.json в корневом каталоге модуля, который затем копируется в каталог build .

С npm 6.4.1, ~ 6.7, ~ 6.9, ~ 6.10, ~ 6.11 и 6.12.0 упакованный файл (из npm pack ) содержит только build/npm-shrinkwrap.json , но с 6.12.1 и более поздними версиями он включает как build/npm-shrinkwrap.json _, так и npm-shrinkwrap.json .

(Сообщество сейчас недоступно / доступно только для чтения, если это не та проблема, я хотел бы извиниться!)

Мне кажется странным включать термоусадочный файл в любую часть опубликованного пакета, но в любом случае это будет иметь эффект только в корне - почему ваш процесс сборки помещает туда копию?

Это, конечно, хороший вопрос.

У меня он находится в каталоге build / как часть другого шага сборки, который берет каталог build / и создает образ контейнера докера. Идея заключалась в том, чтобы запустить npm test т. Д. Один раз вне докера, а затем сделать так, чтобы файл с термоусадочной пленкой ускорил процесс докера (позволяя npm install внутри докера забирать те же файлы). Тогда это также будет служить документацией о том, что было использовано для строительства. Процесс просто скопировал npm-shrinkwrap.json в каталог сборки.

Исправление для меня сейчас - использовать mv вместо cp чтобы поместить файл в каталог build/ .

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

1000i100 picture 1000i100  ·  3Комментарии

theADAMJR picture theADAMJR  ·  3Комментарии

FaizenR picture FaizenR  ·  3Комментарии

Cohen-Carlisle picture Cohen-Carlisle  ·  4Комментарии

goldingdamien picture goldingdamien  ·  4Комментарии