[javascript] Разница между Grunt, NPM и Bower (package.json vs bower.json)



Answers

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

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

Эти строки добавляют больше значения

Bower, в отличие от npm, может иметь несколько файлов (например .js, .css, .html, .png, .ttf), которые считаются основным файлом. Бауэр семантически рассматривает эти основные файлы, когда они упакованы вместе, компонент.

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

  1. Закрепление некоторых файлов (например, плагин zipup)
  2. Наведение на js-файлы (jshint)
  3. Скомпилировать меньше файлов (grunt-contrib-less)

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

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

Вопрос 1

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

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

Вопрос 2

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

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

  • Отредактируйте файл package.json и добавьте зависимость от 'request'
  • Установка npm

ИЛИ

  • Использовать npm install --save request : npm install --save request

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

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

Question

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

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

Из того, что я собираю,
запущенная bower install будет извлекать пакет и помещать его в каталог /vendor ,
при запуске npm install он будет извлекать его и помещать в каталог /node_modules .

Этот ответ SO говорит, что беседа для front-end и npm для бэкэнда.
Ember-app-kit похоже, придерживается этого различия с первого взгляда ... Но инструкции в файле grunt для включения некоторых функций дают две явные команды, поэтому я здесь полностью смущен.

Интуитивно я бы предположил, что

  1. npm install --save-dev package-name будет эквивалентно добавлению имени пакета в мой пакет package.json

  2. bower install --save package-name может быть таким же, как добавление пакета в мой bower.json и запуск установки bower ?

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




Related