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