@eatmypants

Когда использовать global и local метод установки node.js модулей?

Я только начинаю использовать grunt в своем рабочем процессе и возник такой вопрос.
Зависимости проекта с grunt плагинами можно применить в package.json двумя способами.
1. Установив интересующий плагин глобально и прописав зависимость вручную в package.json
2. Установив интересующий плагин локально, который будет прописан автоматически в package.json
Мне кажется первый вариант намного проще, т.к. я могу полностью создать стэк интересующих меня модулей у себя глобально и прописывать зависимости в каждом проекте собственноручно нежели каждый раз делать установку всех (с оговоркой) модулей при создании нового проекта.

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

Так все же, когда и при каких условиях нужно устанавливать модули локально или глобально?
  • Вопрос задан
  • 3854 просмотра
Решения вопроса 1
Staltec
@Staltec
Node.js разработчик
Устанавливайте плагины необходимые для тасков сборщика (grunt, gulp) локально, и прописывайте их в devDependencies (npm install [grunt-module] -D). Это позволит вам сформировать изолированную среду сборки для каждого проекта. Т.к. состав модулей для сборщика может отличаться в разных проектах, то так вам будет проще следить за зависимостями. К тому же, если в вашем проекте будет использоваться система контроля версий, то все участники разработки смогут получить информацию необходимую для сборки из package.json проекта.

Чтобы devDependencies модули не попали на продакшн, достаточно произвести установку пакетов проекта на продакшене явно указав ключ --save (-S).

Глобально ставить имеет смысл какие-либо утилиты общего назначения, СSS препроцессоры, трансляторы (typescript), супервизоры (forever, pm2, etc), в общем всё то, что необходимо глобально вызвать из консоли. Соответственно поэтому сам grunt/gulp и ставится глобально.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Ставьте глобально только утилиты командной строки.
https://docs.npmjs.com/getting-started/installing-...

Честно говоря, я последнее время ставлю все локально -- так админам проще деплоить (скрипту достаточно сделать cd $projectDir && npm install) и не будет неожиданных конфликтов версий.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы