Как удалить node_modules одну папку глубоко в корне

.gitignore Шаблоны

— это простой текстовый файл, в каждой строке которого содержится шаблон, который файлы или каталоги следует игнорировать.

Комментарии

Строки, начинающиеся с решетки ( ), являются комментариями и игнорируются. Пустые строки можно использовать для улучшения читаемости файла и для группировки связанных строк шаблонов.

Слэш

Символ косой черты ( ) представляет собой разделитель каталогов. черта в начале шаблона относится к каталогу, в котором находится .

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

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

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

Самый простой шаблон — это буквальное имя файла без каких-либо специальных символов.

Шаблон Примеры совпадений

Подстановочные символы

— символ звездочки соответствует нулю или более символам.

Шаблон Примеры совпадений

— Два соседних символа звездочки соответствуют любому файлу или нулю или более каталогам. Если за ним следует косая черта ( ), он соответствует только каталогам.

Шаблон Примеры совпадений
Соответствует чему-либо в каталоге .

— Знак вопроса соответствует любому одиночному символу.

Шаблон Примеры совпадений

Квадратных скобок

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

Если первый символ после — восклицательный знак ( ), То шаблон соответствует любому символу, кроме символов из указанного набора.

Шаблон Примеры совпадений

Отрицательные паттерны

Шаблон, который начинается с восклицательного знака ( ), Отменяет (повторно включает) любой файл, который игнорируется предыдущим шаблоном. Исключением из этого правила является повторное включение файла, если его родительский каталог исключен.

Шаблон Примеры совпадений
или не будут проигнорированы

exports, module.exports, и синхронная загрузка модулей

В любом модуле есть специальный объект . Вы могли заметить его в листингах выше. Можно добавить любые атрибуты к этому объекту. К примеру :

Немного сократил выдачу чтобы лучше было видно. Объект теперь имеет те атрибуты которые мы задавали в каждом из модулей. Можете использовать сколько угодно атрибутов, и можно заменить весь объект на чтонибудь другое. К примеру можно заменить его на функцию :

Обратите внимание что мы не написали

Объект который есть в каждом модуле, это то что возвращает функция из этого модуля.

Поменяем файл :

Свойства из экспортируются в констранту :

Рассмотрим атрибут который есть в каждом модуле. В листингах выше можно заметить что каждый раз имел значение . Модуль использует этот атрибут для отслеживая какой модуль был загружен ( значение ), а какой еще загружается. Мы можем к примеру увидеть что модуль был полностью загружен когда проверим объект на следующем цикле , используя вызов :

В отложенном запуске видим что и полностью загрузились.

Объект становится завершённым когда Node завершает загрузку модуля и делает пометку loaded: true. Весь процесс подключения и загрузки модуля происходит синхронно. Это означает что нам нельзя изменять асинхронно. К примеру нельзя делать так :

Объем модуля¶

{нить}

Имя каталога текущего модуля. Это то же самое, что и принадлежащий .

Пример: бег из

{нить}

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

Для основной программы это не обязательно то же самое, что имя файла, используемое в командной строке.

Видеть для имени каталога текущего модуля.

Примеры:

Бег из

Учитывая два модуля: а также , куда это зависимость от и есть структура каталогов:

Ссылки на в вернусь в то время как ссылки на в вернусь .

{Объект}

Ссылка на что короче набрать. См. Раздел о для получения подробной информации о том, когда использовать и когда использовать .

{модуль}

Ссылку на текущий модуль см. В разделе о . Особенно, используется для определения того, что модуль экспортирует и делает доступным через .

  • {строка} имя модуля или путь
  • Возвращает: {любой} экспортированное содержимое модуля

Используется для импорта модулей, , и локальные файлы. Модули можно импортировать из . Локальные модули и файлы JSON можно импортировать, используя относительный путь (например, , , , ), который будет разрешен для каталога, названного (если определено) или текущий рабочий каталог. Относительные пути стиля POSIX разрешаются независимо от ОС, что означает, что приведенные выше примеры будут работать в Windows так же, как и в системах Unix.

{Объект}

Модули кэшируются в этом объекте, когда они требуются. Удалив значение ключа из этого объекта, следующий перезагрузит модуль. Это не относится к нативные дополнения, для которых перезагрузка приведет к ошибке.

Также возможно добавление или замена записей. Этот кеш проверяется перед собственными модулями, и если в кеш добавляется имя, соответствующее собственному модулю, только -prefixed require вызовы будут получать собственный модуль

Используйте осторожно!

Инструктировать о том, как обрабатывать определенные расширения файлов.

Обработка файлов с расширением в качестве :

Устарело. Раньше этот список использовался для загрузки модулей, отличных от JavaScript, в Node.js путем их компиляции по запросу. Однако на практике есть гораздо лучшие способы сделать это, например, загрузить модули через какую-нибудь другую программу Node.js или заранее скомпилировать их в JavaScript.

Избегать использования . Использование может вызвать небольшие ошибки, и разрешение расширений будет медленнее с каждым зарегистрированным расширением.

{модуль}

В объект, представляющий сценарий входа, загружаемый при запуске процесса Node.js. Видеть .

В сценарий:

  • {строка} Путь к модулю для разрешения.
  • {Объект}
  • {string []} Пути для определения местоположения модуля. Если присутствует, эти пути используются вместо путей разрешения по умолчанию, за исключением нравиться , которые всегда включены. Каждый из этих путей используется в качестве отправной точки для алгоритма разрешения модуля, что означает, что иерархия проверяется из этого места.
  • Возвращает: {строка}

Используйте внутренний машины для поиска местоположения модуля, но вместо загрузки модуля просто верните разрешенное имя файла.

Если модуль не может быть найден, выдается ошибка.

  • {строка} Путь к модулю, пути поиска которого извлекаются.
  • Возвращает: {string [] | null}

Возвращает массив, содержащий пути, найденные во время разрешения или если строка ссылается на основной модуль, например или .

Установка

Для начала нам необходимо убедиться, что Node.js и npm установлены глобально на нашем компьютере. Мы можем это проверить при помощи выполнения команды с флажком , в результате чего будут показаны установленные версии этих инструментов. Откройте вашу консоль и введите туда следующую команду:

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

Давайте создадим папку проекта под названием и перейдем в нее.

Теперь, когда мы в ней, мы можем инициализировать наш проект, выполнив команду init.

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

Теперь, когда у нас есть package.json, мы можем установить зависимости, необходимые для нашего проекта. К счастью, нам нужны только следующие:

  • body-parser – промежуточное ПО для разбора тела запросов;
  • express – веб-фреймворк с самым необходимым функционалом, который мы будем использовать для создания нашего сервера;
  • mysql:  драйвер MySQL;
  • request (необязателен) – легкий способ выполнения запросов HTTP;

Мы воспользуемся командой , за которой будут следовать все зависимости, для завершения настройки нашего проекта.

В результате будут созданы файл package-lock.json, папка node_modules, и package.json теперь будет выглядеть подобно следующему:

Советы менеджера пакетов¶

Семантика Node.js были разработаны так, чтобы быть достаточно общими для поддержки разумных структур каталогов. Программы-менеджеры пакетов, такие как , , а также мы надеемся найти возможность создавать собственные пакеты из модулей Node.js без изменений.

Ниже мы приводим предлагаемую структуру каталогов, которая может работать:

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

Пакеты могут зависеть друг от друга. Чтобы установить пакет , может потребоваться установить определенную версию пакета . В сам пакет может иметь зависимости, а в некоторых случаях они могут даже конфликтовать или образовывать циклические зависимости.

Поскольку Node.js ищет любых загружаемых модулей (то есть разрешает символические ссылки), а затем , эту ситуацию можно разрешить с помощью следующей архитектуры:

  • : Содержание пакет, версия 1.2.3.
  • : Содержание пакет, который зависит от.
  • : Символическая ссылка на .
  • : Символические ссылки на пакеты, которые зависит от.

Таким образом, даже если встречается цикл или если есть конфликты зависимостей, каждый модуль сможет получить версию своей зависимости, которую он может использовать.

Когда код в пакет делает , он получит версию, которая символически связана с . Затем, когда код в пакетные звонки , он получит версию, которая символически связана с .

Кроме того, чтобы сделать процесс поиска модулей еще более оптимальным, вместо того, чтобы помещать пакеты непосредственно в , мы могли бы вставить их . Тогда Node.js не будет утруждать себя поиском недостающих зависимостей в или .

Чтобы сделать модули доступными для Node.js REPL, может быть полезно также добавить папку в переменная окружения. Поскольку поиск модуля с помощью все папки являются относительными и основаны на реальном пути к файлам, которые обращаются к , сами пакеты могут быть где угодно.

Дополнительные руководства по узлам:

  • Введение в менеджер пакетов npm
  • Введение в Node.js
  • HTTP-запросы с использованием Axios
  • Где разместить приложение Node.js
  • Взаимодействовать с Google Analytics API с помощью Node.js
  • Средство выполнения пакетов npx Node
  • Руководство по package.json
  • Где npm устанавливает пакеты?
  • Как обновить Node.js
  • Как использовать или выполнить пакет, установленный с помощью npm
  • Файл package-lock.json
  • Семантическое управление версиями с использованием npm
  • Следует ли зафиксировать папку node_modules в Git?
  • Обновите все зависимости Node до последней версии
  • Разбор JSON с помощью Node.js
  • Найдите установленную версию пакета npm
  • Node.js потоки
  • Установите старую версию пакета npm
  • Получить текущую папку в Node
  • Как зарегистрировать объект в Node
  • Предоставление функциональности из файла узла с помощью экспорта
  • Различия между узлом и браузером
  • Сделайте HTTP-запрос POST с помощью Node
  • Получить данные тела HTTP-запроса с помощью Node
  • Буферы узлов
  • Краткая история Node.js
  • Как установить Node.js
  • Сколько JavaScript вам нужно знать, чтобы использовать Node?
  • Как использовать Node.js REPL
  • Узел, принимать аргументы из командной строки
  • Вывод в командную строку с помощью Node
  • Принять ввод из командной строки в Node
  • Удаление пакетов npm с помощью `npm uninstall`
  • npm глобальные или локальные пакеты
  • зависимости npm и devDependencies
  • Цикл событий Node.js
  • Понимание process.nextTick ()
  • Понимание setImmediate ()
  • Эмиттер событий узла
  • Создайте HTTP-сервер
  • Выполнение HTTP-запросов с помощью Node
  • Модуль Node fs
  • HTTP-запросы в Node с использованием Axios
  • Чтение файлов с помощью Node
  • Пути к файлам узлов
  • Написание файлов с помощью Node
  • Статистика файла узла
  • Работа с файловыми дескрипторами в Node
  • Работа с папками в Node
  • Модуль пути к узлу
  • Модуль Node http
  • Использование WebSockets с Node.js
  • Основы работы с MySQL и Node
  • Обработка ошибок в Node.js
  • Путеводитель по мопсу
  • Как читать переменные среды из Node.js
  • Как выйти из программы Node.js
  • Модуль Node os
  • Модуль событий узла
  • Узел, разница между разработкой и производством
  • Как проверить, существует ли файл в Node.js
  • Как создать пустой файл в Node.js
  • Как удалить файл с помощью Node.js
  • Как получить дату последнего обновления файла с помощью Node.js
  • Как определить, сегодня ли дата в JavaScript
  • Как записать объект JSON в файл в Node.js
  • Почему вам следует использовать Node.js в вашем следующем проекте?
  • Запускайте веб-сервер из любой папки
  • Как использовать MongoDB с Node.js
  • Используйте Chrome DevTools для отладки приложения Node.js
  • Что такое pnpm?
  • Список параметров среды выполнения Node.js v8
  • Как исправить ошибку «Отсутствует доступ для записи» при использовании npm
  • Как включить модули ES в Node.js
  • Как создать дочерний процесс с помощью Node.js
  • Как получить в Express и разобранное, и необработанное тело
  • Как обрабатывать загрузку файлов в Node.js
  • Каковы одноранговые зависимости в модуле Node?
  • Как написать файл CSV с помощью Node.js
  • Как читать CSV-файл с помощью Node.js
  • Модули ядра узла
  • Увеличение номеров сразу нескольких папок с помощью Node.js
  • Как распечатать холст по URL-адресу данных
  • Как создать и сохранить изображение с помощью Node.js и Canvas
  • Как скачать изображение с помощью Node.js
  • Как массово переименовывать файлы в Node.js
  • Как получить имена всех файлов в папке в Node
  • Как использовать обещания и ожидания с функциями обратного вызова Node.js
  • Как протестировать пакет npm локально
  • Как проверить текущую версию Node.js во время выполнения
  • Как использовать Sequelize для взаимодействия с PostgreSQL
  • Обслуживайте HTML-страницу с помощью Node.js
  • Как устранить ошибку `util.pump is not a function` в Node.js

В чем смысл .gitignore?

В большинстве проектов есть разница между кодом / конфигурацией и сгенерированные файлы из этого кода или конфигурации. Последнее обычно бесполезно, и его можно игнорировать.

Обычно вы хотите, чтобы код и конфигурация отслеживались только через git. Это связано с тем, что сгенерированные файлы эфемерны, и если вы удалите их, вы можете просто восстановить их снова. Часто нет смысла загружать их, поскольку они просто усложнят ситуацию и вызовут ненужные конфликты слияния.

Это широкое определение, поэтому давайте рассмотрим пример. В проектах Node JS есть папка с именем node_modules, которая содержит все внешние пакеты, которые необходимо запустить вашему коду. Вы можете удалить этот каталог и полностью перестроить его, запустив команду npm install, которая использует конфигурацию package.json для поиска пакетов.

Так какой смысл иметь папку node_modules в Git? На самом деле его нет, так как он более сложный, может вызвать проблемы и даже во многих случаях может значительно увеличить размер репозитория Git.

Если вы проигнорируете весь каталог, все ваши коллеги по-прежнему смогут сгенерировать свою локальную копию из файла package.json. Таким образом, вместо этого в Git следует отслеживать только package.json. Большинство вещей, которые добавляются в .gitignore, следуют этому шаблону. Артефакты сборки, такие как папка ./bin/, не фиксируются, поскольку они являются прямым результатом самого кода.

Для удобства в .gitignore можно добавить и другие вещи. MacOS генерирует системные файлы с именем .DS_store, которые вы всегда можете игнорировать. Возможно, вы храните ключи API в .env /, которые не хотите отслеживать в системе управления версиями, вы тоже можете их добавить. Кеши, журналы и другой вывод обычно можно игнорировать.

03 веб-руководство. создание первого проекта ts / js scss / css git; создать простой проект tempate

У меня есть проект, содержащий несколько других проектов:

  • Главный проект
    • Мини проект 1
    • Мини проект 2

Все содержащие папка. Я хочу, чтобы git игнорировал папку независимо от того, где она начинается с корневой папки. Что-то вроде этого добавить в .gitignore:

Добавь это

к файл, чтобы игнорировать все каталоги, называемые в текущей папке и любых подпапках

  • какой был бы глобальный путь, чтобы сделать то же самое для кармы, исключает?
  • 8 Для шаблона gitignore для nodejs: github.com/github/gitignore/blob/master/Node.gitignore
  • 10 См. Ответ @ AndrewSchreiber, если вы ранее добавляли папку node_modules в git. Вам нужно будет удалить его из кеша с помощью «git rm -r —cached node_modules».

Использовать универсальный однострочный в терминале в каталоге проекта:

Это работает независимо от того, создали ли вы или нет, независимо от того, добавили ли вы для отслеживания git или нет.

Затем зафиксируйте и нажмите изменения.

Объяснение

создаст файл, если он еще не существует.

а также добавит в конце , вызывая папку и все подпапки, которые следует игнорировать.

удаляет папка из git control, если она была добавлена ​​ранее. В противном случае отобразится предупреждение , который не имеет побочных эффектов, и его можно смело игнорировать. Флаги заставляют удаление быть рекурсивным и включать кеш.

отображает новые изменения. Изменение на появится, а не появится, так как git больше не отслеживает его.

  • 5 здесь не должно быть необходимости: создаст файл, если он не существует.
  • необходим. вернется в противном случае.
  • 1 Хм, похоже, отличается от ОС к ОС
  • macOS кажется не нуждается в прикосновении
  • 1 следует создать новый файл с исходным содержимым, используя добавляет текст в конец существующего указанного файла

Попробуйте сделать что-то вроде этого

используется для рекурсивного вызова во всем проекте

Справка

2 Объясните, почему этот подход лучше, чем просто node_modules/?

В первую очередь нужно добавить файл в my-app. Как на изображении ниже.

а затем добавьте это в свой файл

Заметка

Вы также можете добавить другие файлы, чтобы игнорировать их для отправки на github. Вот еще несколько файлов, хранящихся в .gitignore. Вы можете добавить их в соответствии с вашими требованиями. это просто способ прокомментировать файл .gitignore.

  • Зачем вам добавлять сборку в .gitignore?
  • 7 @SebastianNielsen По той же причине, по которой мы не отслеживаем node_modules. Вы получаете build / путем компиляции.

Создайте .gitignore файл в корневой папке напрямую редактором кода или командой

Для Mac и Linux

 коснитесь .gitignore 

Для Windows

 эхо .gitignore 

открытым .gitignore объявить имя папки или файла, как это /имя папки

Я думаю ты имел ввиду echo >.gitignore. ;)

Добавление строки ниже в .gitignore будет игнорировать модули узлов из всего репозитория.

  • 1 Как? Он будет игнорировать только папку node_modules в той же папке, где присутствует файл .gitignore.
  • @RajendranNadar, спасибо, я просто пытался понять это сам.

Это работает для меня

рекурсивный подход для игнорирования всех node_modules, присутствующих в подпапках

Добавьте строку ниже в свой .gitignore

Это проигнорирует все node_modules в вашем текущем каталоге, а также в подкаталоге.

Обратите внимание, что на этот вопрос уже есть принятый ответ. Измените свой ответ, чтобы он лучше других ответов, уже представленных в этом вопросе

вы также можете сделать это с помощью SVN / Tortoise git.

просто щелкните правой кнопкой мыши node_modules -> Tortoise git -> добавить в список игнорирования.

Это сгенерирует для вас .gitIgnore, и вы больше не найдете папку node_modules в постановке.

просто добавьте разные файлы .gitignore в мини-проект 1 и мини-проект 2. Каждый из файлов .gitignore должен быть / node_modules, и все готово.

  • 2 Я думаю, это то, чего хотел избежать оригинальный плакат. Был задан вопрос, как сделать одно изменение .gitignore, чтобы исключить все папки node_modules.
  • о … он не был конкретным, имея только 1 файл .gitignore

Tweet
Share
Link
Plus
Send
Send
Pin

11 ответов

Лучший ответ

Добавь это

В файл , чтобы игнорировать все каталоги с именем в текущей папке и любых подпапках

892

Alik
23 Апр 2015 в 10:34

он автоматически создаст файл , в противном случае создаст имя файла и добавьте скопируйте и вставьте приведенный ниже код

Ниже это все ненужные файлы

См. https://help.github.com/articles/ignoring-files/ , чтобы узнать больше об игнорировании файлов.

И сохраните файл , и вы сможете загрузить

Salma
25 Ноя 2020 в 16:59

Просто добавьте разные файлы .gitignore в мини-проект 1 и мини-проект 2. Каждый из файлов .gitignore должен быть / node_modules, и все готово.

Alpha Dzingina
5 Июл 2020 в 20:37

Вы также можете сделать это с помощью SVN / Tortoise git.

Просто щелкните правой кнопкой мыши node_modules -> Tortoise git -> добавить в список игнорирования.

Это сгенерирует для вас .gitIgnore, и вы больше не найдете папку node_modules в постановке.

Dhruvesh Patel
27 Апр 2020 в 04:09

Добавьте строку ниже в свой .gitignore

Это проигнорирует все node_modules в вашем текущем каталоге, а также в подкаталоге.

Manish Dubey
30 Янв 2020 в 07:03

Это работает для меня

Рекурсивный подход для игнорирования всех node_modules, присутствующих в подпапках

3

Hanzla Habib
3 Май 2020 в 10:04

Создайте файл .gitignore в корневой папке непосредственно редактором кода или командой

Для Mac и Linux

 touch .gitignore 

Для Windows

 echo >.gitignore 

Откройте .gitignore , укажите имя папки или файла, например, / имя папки

9

Amit Kumar
9 Дек 2020 в 06:02

Добавление строки ниже в .gitignore будет игнорировать модули узлов из всего репозитория.

9

Umesh Khurana
5 Фев 2020 в 22:58

Прежде всего, нужно добавить файл в my-app. Как на изображении ниже.

А затем добавьте это в свой файл

Заметка

Вы также можете добавить другие файлы, чтобы игнорировать их для отправки на github. Вот еще несколько файлов, хранящихся в .gitignore. Вы можете добавить их в соответствии с вашими требованиями. — это просто способ оставить комментарий в файле .gitignore.

27

joshtch
15 Ноя 2018 в 00:41

Попробуйте сделать что-то вроде этого

используется для рекурсивного вызова во всем проекте

38

Community
20 Июн 2020 в 09:12

Используйте универсальный однострочник в терминале в каталоге проекта:

Это работает независимо от того, создали вы или нет, независимо от того, добавили ли вы в отслеживание git или нет.

Затем зафиксируйте и нажмите изменения .

Объяснение

сгенерирует файл , если он еще не существует.

и добавят в конец , в результате чего папка и все подпапки будут проигнорированы.

удаляет папку из элемента управления git, если она была добавлена ​​ранее. В противном случае будет показано предупреждение , которое не имеет побочных эффектов, и вы можете игнорировать его. Флаги заставляют удаление быть рекурсивным и включать кеш.

отображает новые изменения. Появится изменение на , а не появится, так как git больше не отслеживает его.

196

Andrew Schreiber
12 Окт 2019 в 00:53

Глобальный .gitignore

Git также позволяет вам создать глобальный файл , в котором вы можете определить правила игнорирования для каждого репозитория Git в вашей локальной системе.

Файл можно назвать как угодно и хранить в любом месте. Чаще всего этот файл хранится в домашнем каталоге. Вам придется вручную создать файл и настроить Git для его использования.

Например, чтобы установить в качестве глобального файла игнорирования Git, вы должны сделать следующее:

  1. Создайте файл:

  2. Добавьте файл в конфигурацию Git:

  3. Откройте файл в текстовом редакторе и добавьте в него свои правила.

Глобальные правила особенно полезны для игнорирования определенных файлов, которые вы никогда не хотите фиксировать, например файлов с конфиденциальной информацией или скомпилированных исполняемых файлов.

Команды npm¶

NPM позволяет определять в файле команды, которые выполняют определенные действия. Например, определим следующий файл :

В данном случае мы получаем переданные при запуске приложению параметры.

И определим следующий файл :

Здесь добавлена секция , которая определяет две команды. Вообще команд может быть много в соответствии с целями и задачами разработчика.

Первая команда называется . Она по сути выполняет команду , которая выполняет код в файле

Вторая команда назвывается . Она также выполняет тот же файл, но при этом также передает ему два параметра.

Названия команд могут быть произвольными. Но здесь надо учитывать один момент. Есть условно говоря есть зарезервированные названия для команд, например, , , и ряд других. Их не очень много. И как раз первая команда из выше определенного файла называется . И для выполнения подобных команд в терминале/командной строке надо выполнить команду

Например, для запуска команды

Команды с остальными названия, как например, в вышеопределенном файле, запускаются так:

Например, последовательно выполним обе команды:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: