.gitignore и node_modules

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

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

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

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

Когда я разветвляю этот репозиторий и выполняю npm install, папка заполняется node_modules, и, поскольку .gitignore отсутствует, git пытается их зафиксировать...

Что я делаю не так?


person Erel Segal-Halevi    schedule 12.06.2013    source источник


Ответы (2)


Вы не делаете ничего плохого, npm install скачает и установит все зависимости проекта, которые определены в пакете .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, — это спросить владельца проекта :).

person verybadalloc    schedule 12.06.2013

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

person Himanshu Bhardwaj    schedule 12.06.2013
comment
Я с тобой согласен. Я думаю, что это ошибка владельца репозитория. - person bpoiss; 12.06.2013