Пытаясь понять, как узлы, NPM и GIT объединяются вместе - PullRequest
0 голосов
/ 19 марта 2020

Заранее извиняюсь, если какой-либо из этих вопросов уже задавался, но я немного новичок в этой области.

Во-первых, я хотел бы сказать, что я проходил курсы на Freecodecamp ( Это здорово) и теперь я верю, что готов начать свой первый проект. Я еще не прошел все курсы и скоро вернусь к ним, но знаю html, CSS и JS. У меня есть вопросы не об использовании Node, NPM и GIT, а о том, как они все вместе ie и что происходит между ними. Трудно точно объяснить, что я пытаюсь сказать, поэтому я сразу же приведу пример.

Я учусь лучше всего с помощью обратного инжиниринга и хочу создать такой сайт, как https://witcher3map.com/. У них все это доступно на GitHUB здесь https://github.com/witcher3map/witcher3map, поэтому я решил посмотреть, смогу ли я установить его на своей машине и перепроектировать его и так далее c. Я знаю кое-что, а другие нет, поэтому я напишу свои вопросы, как будто я следую их инструкциям и задам вопросы, когда мне нужно:

Вопросы

  • Я установил узел и GIT и клонировал репо без проблем. Теперь мой первый вопрос об этом заключается в том, что я создал папку с именем witcher3map, но когда я ее клонировал, она создала еще одну папку с именем witcher3map. Итак, теперь это witcher3map / witcher3map. Могу ли я просто переместить его на одну папку или GIT каким-то образом сохранить эти пути и другую информацию о конфигурации где-нибудь, и это заставит GIT запутаться?

  • Затем я запустил NPM установить - теперь я считаю, что NPM смотрит на пакет. json файл, чтобы выяснить, какие зависимости нужны DL, верно ли это?

  • Как только зависимости загружены, если Затем я синхронизирую c. Репозитории снова загружает зависимости в GIThub? Я, очевидно, не хочу этого, и если я предполагаю, что есть переключатель или какая-то команда, чтобы предотвратить это?

  • Следующая команда говорит мне запустить «grunt build», но когда я пытаюсь это ошибки. Я думаю, это потому, что у меня не установлен Grunt? Но инструкции не говорят мне, чтобы установить его. Может ли кто-нибудь сказать мне, когда он установлен? Я предполагаю, что он идет в подпапку и загружает файл типа конфигурации grunt, в котором есть инструкции по сборке, но как он туда попадает?

EDIT : некоторые больше информации - Grunt является зависимостью, и он загрузил это хорошо. Когда я запускаю "grunt build", я запускаю из GIT Bash CLI и он говорит "команда не найдена", нужно ли мне скорее запускать его в узле?

  • То же самое происходит для "grunt server"

Я также видел в других проектах другие команды, которые мне трудно понять. Например, в https://github.com/WFCD/warframe-items говорится, что после клонирования репо, вы должны использовать приложение, которое вы набираете

const Items = require ('warframe-items')

Я имею в виду, что это значит? Я уверен, что это имеет смысл для опытных разработчиков, но не для меня. Кто-нибудь может уточнить это?

Мой последний вопрос: в некоторых других проектах я также вижу команды / переключатели, где они говорят такие вещи, как «сборка» или способы построения сборки DEV или сборки prod. Как отследить эти упомянутые команды, чтобы в конечном итоге открыть файл, чтобы точно узнать, что делает «сборка»?

Спасибо,

1 Ответ

1 голос
/ 19 марта 2020

Итак, теперь это witcher3map / witcher3map. Могу ли я просто переместить его на одну папку или GIT каким-то образом сохранить эти пути и другую конфигурационную информацию где-нибудь, и это заставит GIT запутаться?

Это нормально, чтобы переместить его. Вся история любого репо в git хранится локально в «относительной root» папке (это папка .git). Таким образом, полное перемещение всего проекта ничего не изменит для git.

Затем я запустил NPM install - Теперь я считаю, NPM смотрит на файл пакета. json, чтобы выяснить, какие зависимости нужны DL, это правильно?

Правильно. Возможны и другие вещи (обратный каскадный поиск, если вы не указали c в семантике файла package.json), но npm install просто предназначен для поиска и установки пакетов x.

После загрузки зависимостей, если я затем синхронизирую c, репозитории снова загружают зависимости в GIThub?

Не стоит, взгляните на .gitignore файл в репозитории ведьмы вы связаны. Он настроен как черный список, на что git следует не обращать внимание. node_modules находится в этом списке.

Еще немного информации - Grunt является зависимостью, и он загрузил ее нормально Когда я запускаю "grunt build", я запускаю из GIT Bash CLI и он говорит "команда не найдена", нужно ли мне скорее запускать его в узле?

Никогда не использовал grunt лично (больше похоже на gulp / npm native / webpack), но, как и в случае других популярных исполнителей задач, вам, возможно, придется установить его глобально. Вот что означает флаг -g:

npm install -g grunt-cli

https://gruntjs.com/getting-started

Сначала запустите эту команду, затем выполните инструкции из репо.

Даже когда он установлен, может кто-нибудь сказать мне, как выполняется "сборка"? Я предполагаю, что он идет в подпапку и загружает файл типа конфигурации grunt, в котором есть инструкции по сборке, но как он туда попадает?

Gruntfile.js - это место, где находится конфигурация.

По сути, Грант - просто "дирижер оркестра". Он инициализирует зависимости пакетов, которые вы скачали с помощью npm install (которые находятся внутри node_modules), с соответствующими файлами конфигурации (если они не ищут их автоматически).

Например, server.js, это файл конфигурации для пакета express, указанного в вашем пакете. json файл. По сути, это делает nodeJS средой веб-сервера (т. Е. Локально устанавливает адрес обратной связи для порта независимо от того, когда вы делаете запрос в браузере, узел прослушивает и отвечает).

Что касается того, как NodeJS знает об этом материале, который потребует больше времени для объяснения, чем я готов инвестировать, но подсказка такова: именно поэтому вам пришлось установить grunt во всем мире.

Заключительные советы:

  1. Вы слишком много думаете об этом, как головоломка, это больше похоже на башню дженга, слои на слоях.

  2. Git находится на своем собственном слое, отдельном от ворчания / nodeJS.

PS Ответил, потому что у меня было свободное время ( кашель covid19, нет работы), но вы, вероятно, должны публиковать подобные вопросы либо на форумах freecodecamp или Reddit для лучшего приема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...