Подходит `.gitignore` Для Node.js
Структура дерева
Как мой проект Node.js:
/
| - node_modules [+ INCLUDE]
| | - my-mod1
| | | - node_modules [- IGNORE]
| | | | - external-mod1
| | | | - external-mod2
| | | - src
| | | | - node_modules [+ INCLUDE]
| | | | | - my-mod2
| | | | | - my-mod3
| | - my-mod4
Мой план
При публикации моего проекта в GitHub:
- Я хочу включить
my-mod
s.
- Я не хочу включать
external-mod
s.
Это означает:
- Я хочу включить верхнюю папку
/node_modules
.
- Я не хочу включать
node_modules
папки, которые являются direct childs в папке модуля.
- Но я хочу включать
node_moduels
папки, которые находятся в папке src
.
Что я сделал
Я добавил следующие строки в /.gitignore
:
#################
## npm
#################
npm-debug.log
node_modules/
!/node_modules/
!src/node_modules/
Мой вопрос
Какие .gitignore
правила мне нужно , чтобы включить правильные папки node_modules
(как описано выше)?
Спасибо - если что-то неясно, прокомментируйте.
Ответы
Ответ 1
Поскольку ваша структура довольно организована, вы можете использовать этот шаблон для выполнения задачи.
/node_modules/*/node-modules/
Вышеупомянутый шаблон будет игнорировать node_modules в папках модулей, my-mod1, my-mod4 и других.
Вышеприведенная строка по-прежнему позволяет включать node_modules в каталог src, когда вы нажимаете на github.
Ответ 2
node_modules/**/node_modules
должен работать на то, что вы пытаетесь сделать.
Совет: GitHub обеспечивает стандарт .gitignore
для различных языков, таких как Node.
Ответ 3
Спасибо за ваши ответы.
Я переосмыслил условие и решил объявить условие другим способом - он отлично работает:
node_modules/*/node_modules
Я надеюсь, что это поможет кому-то в будущем.
Ответ 4
node_modules/*
!node_modules/**/node_modules
может быть?