2013-06-12 3 views
1

Я пытаюсь найти лучший способ обработки node_modules в git. Из того, что я читал, есть два варианта:.gitignore и node_modules

A. Храните все узлы_модулей в репозитории git вместе с моим проектом. Таким образом, человеку, клонирующему мой проект, не нужно устанавливать какие-либо модули.

B. Не храните никаких node_modules в репозитории git, т. Е. Иметь файл .gitignore, содержащий «node_modules».

Однако в некоторых проектах я не вижу ни одного из этих двух вариантов. Например, в this node.js project, нет node_modules, но и файл не .gitignore ...

Когда я раскошелиться этот репозиторий и сделать НПМ установить, папка не заполнена с node_modules, и так как там нет. gitignore, git пытается их совершить ...

Что я делаю неправильно?

ответ

7

Вы не делаете ничего плохого, npm install будет скачать и установить все зависимости от проекта, которые определены в package.json:

"dependencies": { 
     "underscore" : ">=1.3.3" 
    }, 
"devDependencies" : { 
     "mocha" : ">=1.0.0", 
     "canvas" : ">=0.10.0", 
     "cradle" : ">=0.2.0", 
     "should" : ">=0.6.0", 
     "async" : ">=0.1.18" 
} 

Есть много возможных объяснений того, как они не появляются в исходное дерево:

  • Одна из возможностей заключается в том, что они установлены по всему миру.
  • Еще одна возможность заключается в том, что они на самом деле добавляют в .gitignore, но сама .gitignore никогда не совершал (это делается путем добавления .gitignore в .git/info/exclude файле проекта.

В любом случае, единственный способ узнать, почему нет .gitignore существует, спрашивая владельца проекта :).

2

Я не эксперт для этого узла, но все это точно. Если нет .gitignore, то никакие файлы игнорируются. Это явно означает, что коммиттер заботится об этом вручную, чтобы не совершать эти модули.

+2

Я согласен с вами. Я думаю, что это неправильный владелец владельца репозитория. – bpoiss

Смежные вопросы