Разница между Grunt, NPM и Bower (пакет.джсон против Бауэра.формат JSON)


Я новичок в использовании npm и bower, создавая свое первое приложение в emberjs :).
У меня есть немного опыта работы с rails, поэтому я знаком с идеей файлов для перечисления зависимостей (таких как bundler Gemfile)

вопрос: когда я хочу добавить пакет (и проверить зависимость в git), где он принадлежит - в package.json или bower.json?

насколько я понял,
работает bower install принесет пакет и положить его в /vendor каталог
работает npm install он принесет его и положит в

2 575

2 ответа:

обновление для середины 2016 года:

вещи меняются так быстро, что если это конец 2017 года этот ответ может быть не в курсе больше!

новички могут быстро заблудиться в выборе инструментов сборки и рабочих процессов, но то, что наиболее актуально в 2016 году, не использует Bower, Grunt или Gulp вообще! С помощью Webpack вы можете сделать все прямо в NPM!

Не поймите меня неправильно, люди используют другие рабочие процессы, и я все еще использую GULP в своем устаревшем проекте (но медленно выходя из него), но именно так это делается в лучших компаниях и разработчиках, работающих в этом рабочем процессе, делают много деньги!

посмотрите на этот шаблон это очень современная установка, состоящая из смеси лучших и новейших технологий: https://github.com/coryhouse/react-slingshot

  • Webpack
  • НПМ в качестве инструмента сборки (не залпом, хрюкать или беседка)
  • реагировать с Redux
  • ESLint
  • список длинный. Идите и исследуйте!

вопросы:

Когда Я хотите добавить пакет (и проверить зависимость в git), где он находится-в упаковке.JSON или в беседке.json

  • все входит в пакет.json сейчас

  • зависимости, необходимые для сборки, находятся в "devDependencies", т. е. npm install require-dir --save-dev (--save-dev обновляет ваш пакет.json путем добавления записи в devDependencies)

  • зависимости, необходимые для вашего приложения во время выполнения находятся в "зависимости", т. е. npm install lodash --save (--сохранить обновления вашего пакета.json путем добавления записи в зависимости)

если это так, то когда я должен устанавливать пакеты явно так, не добавляя их в файл, который управляет зависимостями (кроме установки инструментов командной строки глобально)?

всегда. Просто из-за комфорта. При добавлении флага (--save-dev или --save) файл, который управляет deps (пакет.json) получает обновляться автоматически. Не тратьте время на редактирование зависимостей в нем вручную. Ярлык для npm install --save-dev package-name и npm i -D package-name и ярлык для npm install --save package-name и npm i -S package-name

Npm и Bower-это инструменты управления зависимостями. Но главное различие между ними -npm используется для установки модулей Node js, но bower js используется для управления интерфейсными компонентами, такими как html, css, js и т. д..

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

эти строки добавляют больше смысла

беседка, в отличие от npm, может иметь несколько файлов (например .js,.стиль CSS. ,формат HTML. ,формат PNG. ,ttf), которые считаются основным файлом(АМИ). Bower семантически рассматривает эти основные файлы, когда они упакованы вместе, как компонент.

Edit:грунт сильно отличается от Npm и Bower. Grunt-это инструмент для запуска задач javascript. Вы можете сделать много вещей, используя grunt, которые вы должны были сделать вручную в противном случае. Выделение некоторых видов использования Ворчание:

  1. сжатие некоторых файлов (например, плагин zipup)
  2. Linting on JS files (jshint)
  3. компиляция меньше файлов (grunt-contrib-less)

есть плагины grunt для компиляции sass, уродующие ваш javascript, копирование файлов/папок, минимизация javascript и т. д.

обратите внимание, что плагин grunt также является пакетом npm.

Вопрос-1

когда я хочу добавить пакет (и проверьте зависимость в git), где он принадлежит - в пакет.JSON или в беседке.json

это действительно зависит от того, откуда этот пакет принадлежит. Если это модуль узла (например,grunt, request), то он будет идти в пакете.json в противном случае в bower json.

Вопрос-2

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

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

  • редактировать пакет.JSON-файл и добавить зависимость от 'request'
  • npm install

или

  • использовать командную строку: npm install --save request

--save параметры добавляет зависимость к пакету.JSON-файл, а также. Если вы не укажете --save вариант, он будет загружать только пакет, но файл json не будет затронут.

вы можете сделать это в любом случае не будет существенной разницы.