npmignore .sh файлы во всех каталогах, кроме одного

Я хотел бы игнорировать все файлы.sh в проекте, кроме тех, которые расположены в определенном каталоге, давайте назовем каталог foo.

итак имеем:

project/
   bar.sh
   baz.sh
   foo/
     a.sh
     b.sh

Я не хочу публиковать bar.sh а также baz.sh в NPM, но я хочу опубликовать a.sh а также b.sh к NPM. Оказывается, у меня есть несколько файлов.sh вне директории foo, и было бы удобнее игнорировать их все одним махом.

Что я могу добавить к своему .npmignore файл, который сделает это?

1 ответ

Решение

В документах для .npmignore говорится:

.npmignore файлы следуют тем же правилам .gitignore файлы:

В этом случае вы игнорируете все .sh файлы (т.е. *.sh) затем отрицаем эту модель, используя апостроф ! и укажите имя папки, которую вы хотите включить. Например:

Пример 1

# ignore all .sh files
*.sh

# include .sh files in the folder foo
!foo/*.sh

При использовании этой конфигурации (в контексте структуры папок, показанной ниже) все эти файлы игнорируются: a.sh, b.sh, e.sh, f.sh

Следующие файлы включены / опубликованы: c.sh а также d.sh,

Замечания: e.sh а также f.sh игнорируются при использовании этой конфигурации, поскольку они находятся в подпапке.


Пример 2

Чтобы также включить / опубликовать .sh файлы в любых подпапках папки foo затем настройте .npmignore следующее:

# ignore all .sh files
*.sh

# include .sh files in the folder foo and any inside its sub folders
!foo/**/*.sh

Используя эту конфигурацию (в контексте структуры папок примера, показанной ниже), только файлы: a.sh а также b.sh игнорируются Все остальные .sh файлы опубликованы.


Пример структуры папок

project
├── a.sh
├── b.sh
└── foo
    ├── baz
    │   ├── e.sh
    │   └── f.sh
    ├── c.sh
    └── d.sh
Другие вопросы по тегам