# Сборка

## Используемые инструменты
* npm: 4.x
* node: 7.x

Вы должны использовать `npm v4.x`, так как `$ grunt pre-build` не работает в `v5.x`.

## Разработка

Мы используем Webpack HMR при разработке Boostnote.
Выполнение следующих команд в корне проекта запустит Boostnote с настройками по умолчанию.

Установите необходимые пакеты с помощью yarn.

```
$ yarn
```

Соберите и запустите.

```
$ yarn run dev-start
```

Эта команда выполняет `yarn run webpack` и `yarn run hot` параллельно. Результат будет такой же, если вы выполните эти две команды раздельно.

`Webpack` будет следить за изменениями в коде и будет применять их автоматически.

Если возникает следующая ошибка: `Failed to load resource: net::ERR_CONNECTION_REFUSED`, пожалуйста, перезапустите Boostnote.

![net::ERR_CONNECTION_REFUSED](https://cloud.githubusercontent.com/assets/11307908/24343004/081e66ae-1279-11e7-8d9e-7f478043d835.png)

> ### Примечание
> В некоторых случаях вам необходимо обновить приложение вручную.
> 1. При редактировании метода конструктора компонента
> 2. При добавлении нового класса CSS (аналогично 1: Класс CSS перезаписывается каждым компонентом. Этот процесс выполняется в методе Constructor.)

## Деплой

Мы используем Grunt для автоматического деплоя.
Вы можете создать задачу, используя `grunt`. Однако мы не рекомендуем этого делать, так как задача по умолчанию включает в себя код и аутентификацию.

Мы подготовили отдельный скрипт, который просто создает исполняемый файл:

This build doesn't work on npm v5.3.0. So you need to use v5.2.0 when you build it.

```
grunt pre-build
```

Вы найдете исполняемый файл в папке `dist`. Обратите внимание: автоматическое обновление не будет работать, потому что приложение не подписано.

Если вам необходимо, вы можете использовать код или аутентификацию с помощью этого исполняемого файла.

---

Special thanks:
Translated by @AlexanderBelkevich
