.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

Другие вопросы по тегам