.npmignore: игнорировать всю папку, кроме файлов данного типа
Фон
У меня есть проект машинописного текста, который я публикую в npm. Все мои источники TS находятся в папке с именем src
и они скомпилированы в папку с именем dist
, src
может включать некоторые HTML-шаблоны, возможно CSS-файлы и другие ресурсы. В рамках сборки все эти ресурсы копируются в папку dist.
Файлы исходных карт также генерируются в папке dist
При публикации я действительно хочу опубликовать папку dist, но я хочу, чтобы исходные карты в папке dist работали.
Чего я пытаюсь достичь
Когда я публикую в npm, я хочу включить весь dist
папку, но игнорировать все не-файлы TS в src
папка.
Причина мне нужна .ts
файлы, потому что исходные карты в папке dist указывают на эти исходные файлы. При отладке мне нужен исходный код, чтобы увидеть его в браузере.
Итак, мне нужно игнорировать src
КРОМЕ для .ts
файлы в src
Что я пробовал
Я попробовал следующее, которое, на основании моих исследований, должно работать, насколько я могу судить.
# standard ignores
node_modules/
karma.conf.js
spec/
# ignore src
src/
# override above and include ts files
!src/**/*.ts
!src/**/*.d.ts
Когда я упаковываю с использованием этого файла, я получаю всю папку src в пакете, включая html, css и файлы изображений.
Я не был уверен, что вышесказанное будет работать для файла TS непосредственно под src
папка так что я тоже попробовал
!src/actualFile.ts
но результат был тот же.
1 ответ
Решение:
Добавьте подстановочные знаки **/*
к вашему игнорированию src
шаблон так становится:
# ignore src
src/**/*
Дополнительный комментарий:
Ваш последний шаблон отрицания (т.е. !src/**/*.d.ts
) можно опустить. Это фактически сделано избыточным из-за предыдущего шаблона отрицания (т.е. !src/**/*.ts
).
С помощью !src/**/*.ts
один обеспечит любой *.d.ts
файлы в src
Каталог также включены.
Полный пересмотрен.npmignore
Для наглядности полный пересмотрен .npmignore
(учитывая ваш приведенный пример) должно быть:
# standard ignores
node_modules/
karma.conf.js
spec/
# ignore src
src/**/*
# override above and include ts files
!src/**/*.ts