@anndarina
frontend enthusiast

Правильная установка gulp?

проблема в следующем. gulp на маке установлен глобально, но когда начинаю новый проект (команда npm i в терминале), в папке которого уже собраны все нужные мне для старта работ папки и файлы, то папка node_modules устанавливается в эту самую папку проекта. и так каждый раз. подскажите, пожалуйста, возможно ли это поправить? таскать из проекта в проект данную папку не хочется.
  • Вопрос задан
  • 2056 просмотров
Решения вопроса 1
@dady_KK
PM
Вам уже все правильно подсказали, я расскажу зачем эта папка нужна и почему такие проблемы если ее удалить. Сам gulp выполняет только одно действие - он запускает программы, которые Вы ему пишите в gulpfile.js (точнее какие именно и для каких файлов и в каком порядке), а эти все программы устанавливаются в папку node_modules и список этих программ с версиями записывается в packages.json (включая другую информацию по проекту, типа названия и описания). Так вот получается так - если в проекте используется gulp, то для него мы пишем вначале packages.json и там записываем (вручную или через параметр установки --save или --save-dev) какие программы нужны и простой командой npm install все устанавливаем (вот ту самую папку node_modules и создаем), затем пишем в gulpfile.js что должно выполняться в проекте и профит. Это почему нельзя работать без папки node_modules.

Теперь ответ на вопрос, как же не тягать папку node_modules, а точнее одни и те же программы в каждый проект. Я лично делаю так (у меня проектов мало - мы продуктовая компания и продуктов всего до десятка, но вот версий очень много, поэтому часто мешает все это дело), в корне папки создал packages.json и gulpfile.js. В этой же папке я создаю для каждого проекта подпапку и ложу туда проект. Все действия для gulp описываю в gulpfile.js,, который лежит не в отдельной папке, как у Вас, а корне основной папке (в корне той папки где лежит сама папка с проектом) и указываю пути в эту папку. Это конечно не очень удобная практика, т.к. в одном файле gulpfile.js находятся все команды для всех проектов, но у меня специфика позволяет удобно этим всем управлять, т.к. новых проектов очень мало, а поменять путь к новой версии и прочему - это минутное дело. Хотя я стараюсь в последнее время делать как Вы, т.е. один проект - один конфиг gulp и своя папка node_modules, чтобы избежать путаницы.
Теперь про сдачу на проверку - Вы сдаете только готовый продукт, верстку или что-то похожее и тянуть все не имеет смысла. Обычно делают так - в папке с проектом лежат в отдельной папке исходники и в отдельной папке уже готовые обработанные файлы, которые собираются из исходников - вот как раз эту готовую папку без исходников Вы можете давать на проверку и потом если все хорошо и все утвердили, то потом просто прикладываете к ней папку с исходниками, gulpfile.js и packages.json и ничего другого не нужно. Заказчик просто запустит в папке с packages.json команду npm install и ему все остальное установится (ну кроме глобального галпа) и ничего тяжелого в виде node_modules никому передавать не нужно.
И совет, уже многие советовали пользоваться Git и публиковать свои проекты в отдельных репозиториях на github.com или bitbucket.com. Это очень удобно, т.к. можно просто передать ссылку на репозиторий заказчику и он оттуда сразу же скачает. Если заказчик против публичных ссылок, то можете это делать для себя в приватных репозиториях, например: у bitbucketа бесплатные приватные репозитории. Но для Вашей работы это очень упрощает очень многие процессы, типа хранения старых проектов и их изменения + передача другим разработчикам.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Есть пакетный менеджер pnpm, он устанавливает пакеты в свой кэш, а в node_modules проекта пробрасывает символические ссылки. Это сильно экономит память, если проектов много.
Ответ написан
@vrazrabotchik
Я и вправду не жадный
Url
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 80 000 до 120 000 ₽
Яндекс Москва
от 100 000 до 300 000 ₽
Plesk Новосибирск
от 90 000 до 150 000 ₽
11 авг. 2020, в 00:34
10000 руб./за проект
10 авг. 2020, в 23:01
1500 руб./за проект
10 авг. 2020, в 19:19
20000 руб./за проект