Какова цель папки node_modules?
Вы можете думать о папке node_modules
как о кэше для внешних модулей, от которых зависит ваш проект. Когда вы npm install
их, они загружаются из Интернета и копируются в папку node_modules, а nodejs обучается искать их там, когда вы импортируете их (без указания c пути). Я называю это кешем, потому что папку node_modules можно полностью воссоздать с нуля в любое время, просто переустановив все зависимые модули (которые должны быть указаны в папках вашего проекта).
но я знаю когда мы собираемся загрузить его в github, мы должны игнорировать папку node_modules, потому что она занимает много места.
Это потому, что нет причин хранить копии всех ваших зависимых модулей в вашем собственном проект на github. Точная версия, которую вы использовали, известна и хранится в ваших package.json
или package-lock.json
, поэтому в любое время вы или кто-либо другой, использующий ваш проект, можете загрузить ваш код, а затем удалить все другие зависимые модули из их исходного источника (включая даже точно такие же версии, которые вы использовали). Итак, нет причин хранить отдельные дубликаты всех этих зависимых модулей в вашем собственном проекте. Это было бы расточительно и усложнило бы обновление до более новой версии всех этих зависимых модулей.
Итак, вот мой вопрос, если я хочу разместить свой проект, действительно ли мне нужно загружать node_modules как ну?
Если у вас есть проект, запущенный на вашем локальном компьютере, и теперь вы хотите переместить его на место своего хостинга, лучше всего переустановить все зависимые модули на хост-машине, а НЕ копировать их с вашей машины разработки. Это связано с тем, что процесс их установки на хост-машине (которая может быть другой платформой или ОС, чем ваша машина разработки) может использовать немного другой процесс установки для конкретной c среды хостинга.