Подтвердить что ты не робот

Что такое npm, bower, gulp, Yeoman, и хрюкать хорошо?

Я разработчик бэкэнд и немного смущен npm, bower, gulp, grunt и Yeoman. Всякий раз, когда я спрашиваю кого-то, какова их цель, ответ, как правило, сводится к менеджеру зависимости - для всех из них. Конечно, нам не нужны четыре разных инструмента, которые все делают одинаково?

Может кто-нибудь объяснить, что каждый из них хорош для в максимально возможном количестве предложений - если возможно, только один инструмент, используя язык, на котором может учиться пятилетний (с навыками развития)?

Например:

  • SVN хранит, управляет и отслеживает изменения в нашем исходном коде

В прошлом я использовал maven, Jenkins, nexus и ant; возможно, вы могли бы сравнить инструменты выше с ними?

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

Вот что я обнаружил до сих пор - не уверен, что это правильно, хотя:

  • bower менеджер зависимостей для интерфейсных разработчиков/JS-библиотек использует плоский список зависимостей
  • npm менеджер зависимостей для сервера node.js, может разрешать переходные зависимости/деревья зависимостей
  • grunt запускает задачи, как Jenkins, но локальность в командной строке
  • Yeoman предоставил строительные леса, т.е. скелетные проекты
  • gulp то же самое, что и grunt, но написанное только в js
  • node.js сервер для js-приложений?
  • git децентрализованный SCM/VCS, аналог svn/cvs

Я закрываю?:)

4b9b3361

Ответ 1

Вы близко! Добро пожаловать в JavaScript:)

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

Беседка Фокусируется на пакетах, которые используются в браузере. Каждый bower install <packagename> указывает на один файл, который должен быть включен (больше можно загрузить). Из-за успеха webpack, браузера и babel он в основном устарел как менеджер зависимостей первого класса.

NPM Исторически он фокусируется на коде NodeJS, но он свергнул bower для модулей браузера. Не позволяйте никому обманывать вас: NPM огромен. NPM также загружает МНОГИЕ файлы в ваш проект, а новая установка npm всегда является хорошей причиной для brew новой чашки кофе. NPM прост в использовании, но может нарушить ваше приложение при смене среды из-за свободного способа ссылок на версии и произвола публикации модулей. Исследование Термоусадочная обертка и npm install --save-exact

хрюкать Облегчает автоматизацию задач. Гальфы старшего и несколько более вялого брата. Сообщество JavaScript часто болтало с ним в 2014 году. В некоторых местах Grunt уже считается наследием, но по-прежнему существует очень много действительно мощной автоматизации. Конфигурация может быть кошмаром для больших случаев использования. Для этого есть модуль grunt.

gulp Делает то же самое, что и хрюкать, но быстрее.

npm run- script Возможно, вам не нужны бегуны для задач. Сценарии NodeJS очень просты в написании, поэтому большинство случаев использования позволяют работать с пользовательской системой автоматизации автоматизации. Запустите скрипты из контекста вашего файла package.json, используя npm run- script

WebPack Не пропустите веб-пакет. Особенно, если вы потеряли много способов написания JavaScript в когерентный модульный код. Webpack пакеты .js файлы в модули и делает это великолепно. Webpack очень расширяема и предлагает отличную среду для разработки: webpack-dev-server Используйте в сочетании с babel для наилучшего возможного использования JavaScript на сегодняшний день.

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

Ответ 2

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

  • Я использую yeoman для создания базового скелета.
  • Я использую node как время выполнения для моего приложения. то есть. запустить node appname
  • Я использую npm для установки модулей node, чтобы помочь мне написать приложение в node
  • Мне может понадобиться какой-то компонент из bower, таких как интерфейсные библиотеки, поэтому используйте bower для их получения.
  • Теперь, чтобы выполнить некоторую повторяющуюся задачу, я буду использовать grunt или gulp для написания некоторых задач. Поэтому каждый раз, когда я хочу повторить его, скажем, минимизируйте мои js файлы, которые я называю grunt/gulp и заставляю их делать это. Разница, которую вы задаете, gulp - это поток, в то время как grunt - это задача.
  • Я использую управление версиями с помощью git, чтобы отслеживать изменения.

Ответ 3

  • Gulp vs Grunt: Gulp обеспечивает большую гибкость при автоматизации задач, Grunt встроен с большой функциональностью в соответствии с обычными методами разработки. Существуют два основных различия между Grunt и Gulp:

    • Grunt фокусируется на конфигурации, а Gulp фокусируется на коде
    • Grunt был построен вокруг набора встроенных и часто используемых задач, в то время как Gulp пришел с идеей ничего не принуждать, но как микро-задачи, созданные сообществом, должны соединяться друг с другом Читайте здесь

  1. NodeJS: это неблокирующий серверный скриптовый язык. Это означает, что операции не будут блокировать дальнейшее выполнение до завершения текущей операции.
    1. Git: Как вы упомянули, это инструмент SCM, широко используемый. Согласно документам GitHub он отличается от других инструментов SCM, поскольку данные никогда не удаляются.

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

      Когда вы выполняете действия в Git, почти все они только добавляют данные в базу данных Git. Очень сложно заставить систему делать что-либо, что не может быть отменено, или заставить его стереть данные каким-либо образом. Как и в любом VCS, вы можете потерять или испортить изменения, которые вы еще не сделали; но после того, как вы сделаете снимок в Git, его очень сложно потерять, особенно если вы регулярно нажимаете свою базу данных в другой репозиторий.

      Подробнее


      1. Bower vs NPM: Bower и NPM - менеджеры зависимостей, но модули Bower предназначены для разработки интерфейса. NPM - это огромная коллекция модулей, которые будут использоваться с бэкэндом NodeJS. Этот ответ SO лучше охватывает его

Ответ 4

Я добавил несколько деталей:

npm - это менеджер пакетов для javascript, npm - это узловая система nodejs, но она может использоваться только для интерфейсных проектов.

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

Относительно различий между gulp, grunt и беседой уже есть билет: Каковы различия между Grunt, Gulp.js и Bower? Почему и когда их использовать?

Nodejs - это более javascript время выполнения. Node.js позволяет создавать веб-серверы и сетевые инструменты с помощью js и набор "модулей", которые обрабатывают различные функциональные возможности ядра и другие основные функции. Источник

Этот билет возобновляет различия между Git и Subversion: Почему Git лучше, чем Subversion?