Создание и настройка файлов .bowerrc и bower.json в Bower

Настройка Bower с помощью .bowerrc

.bowerrc - это файл, который хранится либо в домашней директории /home/username, либо в корне /. .bowerrc призван хранить в себе конфигурацию Bower, которая определяет его работу. Конфигурация описывается с помощью JSON. Вообще Bower прекрасно работает из коробки, однако все же имеет некоторые особенности, которые хотелось бы изменить "под себя".

Если вы не нашли у себя файл .bowerrc, то его нужно создать. Создадим .bowerrc в домашнем каталоге.

touch /home/username/.bowerrc

.bowerrc является скрытым файлом, поэтому чтобы его увидеть нужно воспользоваться флагом -a для команды ls.

ls -a

[meliorem@centos7 ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc .bowerrc Documents Music

Далее рассмотрим настройки, которые можно добавить в .bowerrc.

  • cwd - текущая рабочая директория (относительно какого каталога должны устанавливаться пакеты).
  • directory - путь к каталогу, в который будут загружаться пакеты, по умолчанию это bower_components.
  • registry - репозиторий, в котором нужно искать пакеты.
  • proxy - адрес прокси-сервера для http запросов.
  • shorthand-resolver - url-шаблон для поиска пакетов.
  • https-proxy - адрес прокси-сервера для https запросов.
  • user-agent - агент, от имени которого исходят запросы.
  • timeout - время ожидания ответа на запросы. По умолчанию 60000 миллисекунд.
  • strict-ssl - проверять или нет, SSL-ключ при https запросах.
  • ca - SSL сертификат при использовании https.
  • color - включить/выключить подсветку цветом в выводах.
  • storage - пути для хранения, постоянных данных, кэша и ссылок.
  • tmp - путь для хранения временных файлов.
  • interactive - позволяет Bower вести диалог с пользователем.
  • resolvers - дополнительные резолверы для распознавания кастомных пакетов.
  • shallowCloneHosts - список хостов с поддержкой shallow cloning.
  • scripts - команды для вызова в момент работы Bower.
  • ignoredDependencies - пакеты зависимость, которых будет проигнорирована.

Пример файла .bowerrc может выглядеть следующим образом.

{
  "cwd": "~/.my-project",
  "directory": "bower_components",
  "registry": "https://registry.bower.io",
  "shorthand-resolver": "git://github.com//.git",
  "proxy": "http://proxy.local",
  "https-proxy": "http://proxy.local",
  "ca": "/var/ssl/certificate.pem",
  "color": true,
  "timeout": 120000,
  "save": true,
  "save-exact": true,
  "strict-ssl": true,
  "storage": {
    "packages" : "~/.bower/packages",
    "registry" : "~/.bower/registry",
    "links" : "~/.bower/links"
  },
  "interactive": true,
  "resolvers": [
    "mercurial-bower-resolver"
  ],
  "shallowCloneHosts": [
    "myGitHost.example.com"
  ],
  "scripts": {
    "preinstall": "",
    "postinstall": "",
    "preuninstall": ""
  },
  "ignoredDependencies": [
    "jquery"
  ]
}

Ссылка на официальную документацию по .bowerrc.

Управление зависимостями с помощью bower.json

bower.json хранит настройки пакетов и следит за версиями пакетов, от которых зависят другие пакеты.

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

cd /var/www/example.ru/www

Чтобы создать файл bower.json введите команду данную ниже. Заполните все необходимые поля, самым главным полем является имя проекта, все остальные можно оставить пустыми нажимая Enter.

bower init

Пример файла bower.json.

{
  name: 'example.ru',
  description: 'example site',
  main: 'index.php',
  keywords: [
    'example'
  ],
  authors: [
    'oleg'
  ],
  license: 'MIT',
  homepage: '',
  private: true,
  ignore: [
    '**/.*',
    'node_modules',
    'bower_components',
    'test',
    'tests'
  ],
  dependencies: {
    angular: 'latest',
    bootstrap: '^4.2.1',
    jquery: '1.12.4',
    vue: '^2.5.22'
  }
}

Управление версионированием зависимостей

В блоке dependencies в файле bower.json указаны пакеты и их версии.

Отображение версий может быть различно, поэтому рассмотрим каждый из вариантов на примере пакета vue.

  • vue: 'latest' - пакет может быть обновлен до самой последней версии.
  • vue: '^2.5.22' - пакет может быть обновлен до версии 3.0.0.
  • vue: '~2.5.22' - пакет может быть обновлен до версии 2.6.0.
  • vue: '2.5.22' - пакет не может быть обновлен.

Для обновления пакета используйте следующую команду.

bower update package_name

Установка пакетов с указанием их в зависимостях

Чтобы скачиваемый вами пакет был сохранен в зависимостях в файле bower.json необходимо дописывать флаг --save.

bower install vue --save

Также флаг --save нужно добавлять при удалении пакета, чтобы очистить соответствующую строку в зависимостях в файле bower.json.

bower uninstall vue --save