Подтвердить что ты не робот

Подходит `.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 (как описано выше)?

Спасибо - если что-то неясно, прокомментируйте.

4b9b3361

Ответ 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

может быть?