# Установка Discourse на macOS для разработки

**URL:** https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772
**Category:** Developer Guides
**Tags:** dev-install, how-to
**Created:** [19.Май.2014 16:59:50 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772 "2014-05-19T16:59:50Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [19.Май.2014 16:59:51 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/1 "2014-05-19T16:59:51Z")

</div>

> ⚠ Это руководство содержит инструкции по установке для среды разработки macOS. Руководства для продакшена смотрите здесь: [Install Discourse in production with the official supported instructions](https://meta.discourse.org/t/how-to-install-discourse-in-production/142537)

Итак, вы хотите настроить Discourse на macOS для работы и разработки?

Мы предполагаем, что у вас на Mac не установлены Ruby/Rails/Postgres/Redis. Начнем 🚀 !

## Установка зависимостей Discourse

В вашей системе должны быть установлены следующие пакеты:

- [Git](http://git-scm.com/)
- [rbenv](https://github.com/sstephenson/rbenv) или [asdf](https://asdf-vm.com/guide/getting-started.html)
- [ruby-build](https://github.com/sstephenson/ruby-build)
- [Ruby](https://www.ruby-lang.org/) (последняя стабильная версия)
- [Rails](http://rubyonrails.org/)
- [PostgreSQL](http://www.postgresql.org/)
- [SQLite](https://sqlite.org/)
- [Redis](http://redis.io/)
- [Node.js](https://nodejs.org/en)
- [pnpm](https://pnpm.io/)
- [libvips](https://github.com/libvips/libvips/wiki#building-and-installing)
- [MailHog](https://github.com/mailhog/MailHog)\*\*
- [ImageMagick](http://www.imagemagick.org/)\*\*

_\*\* необязательно_

> перезапустите терминал

Теперь, когда зависимости Discourse установлены, перейдем к установке самого Discourse.

## Перезапустите терминал

Выход из оболочки и перезапуск терминала гарантирует, что пути к установленным пакетам будут правильно определены.

## Клонируйте Discourse

Склонируйте репозиторий Discourse в папку `~/discourse`:

```sh
git clone https://github.com/discourse/discourse.git ~/discourse

```

_`~` обозначает домашнюю папку, поэтому исходный код Discourse будет доступен в вашей домашней папке._

## Инициализация Discourse

Перейдите в вашу папку Discourse:

```sh
cd ~/discourse

```

Установите необходимые gem-пакеты

```sh
bundle install

```

Установите JS-зависимости

```sh
pnpm install

```

Далее выполните эти команды для настройки локального экземпляра Discourse:

```sh
bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

```

Запустите серверы Rails и Ember, у вас есть два варианта.

**Вариант 1** : используя два отдельных окна/вкладки терминала, запустите Rails и фронтенд-бандлер отдельно через

```sh
bundle exec rails server

```

и

```sh
bin/dev --only ember

```

**Вариант 2** : используя только одно окно/вкладку терминала:

```sh
bin/dev # запускает Pitchfork и фронтенд-бандлер вместе

```

🎉 Теперь вы должны иметь возможность перейти по адресу [http://localhost:3000](http://localhost:3000), чтобы увидеть вашу локальную установку Discourse. (Обратите внимание, что первая загрузка может занять до минуты, так как сервер «разогревается».)

Вы также можете попробовать запустить тесты:

```sh
bundle exec rake autospec

```

Все (или почти все) тесты должны пройти успешно.

## Создание нового администратора

Чтобы создать нового администратора, выполните следующую команду:

```sh
RAILS_ENV=development bundle exec rake admin:create

```

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

## Настройка почты

Запустите MailHog:

```sh
mailhog

```

* * *

Поздравляем! Теперь вы администратор своей собственной установки Discourse!

Удачной работы! И чтобы начать, смотрите [Руководство для начинающих по созданию плагинов Discourse](https://meta.discourse.org/t/beginners-guide-to-creating-discourse-plugins/30515).

* * *

Этот документ находится под контролем версий — предложите изменения [на github](https://github.com/discourse/discourse/blob/main/docs/developer-guides/docs/02-development-environments/04-macos-setup.md).

---

<div class="post-metadata">

### Author: ![jamesmarkcook](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jamesmarkcook/32/168563_2.png) [@jamesmarkcook](https://meta.discourse.org/u/jamesmarkcook)
#### Post date: [27.Июль.2014 21:00:08 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/21 "2014-07-27T21:00:08Z")

</div>

If anyone is getting failing specs with most of them being .count errors, then try the following:

```
RAILS_ENV=test bundle exec rake db:reset

```

I had a problem where development data somehow got into my test database and was causing lots of failures.

---

<div class="post-metadata">

### Author: ![henrikbg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/henrikbg/32/57512_2.png) [@henrikbg](https://meta.discourse.org/u/henrikbg)
#### Post date: [21.Июль.2016 20:18:24 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/78 "2016-07-21T20:18:24Z")

</div>

Is it possible to reset a discourse completely?

---

<div class="post-metadata">

### Author: ![techAPJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/techapj/32/342990_2.png) [@techAPJ](https://meta.discourse.org/u/techAPJ)
#### Post date: [22.Июль.2016 01:55:31 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/79 "2016-07-22T01:55:31Z")

</div>

> [@Henrik\_B](#):
>
> Is it possible to reset a discourse completely?

Yes, do:

```plaintext
rake db:drop db:create db:migrate

```

Note that this will wipe everything and you will have to create your Admin user account again.

---

<div class="post-metadata">

### Author: ![Chaboi\_3000](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chaboi_3000/32/163015_2.png) [@Chaboi\_3000](https://meta.discourse.org/u/Chaboi_3000)
#### Post date: [30.Апрель.2019 06:33:04 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/219 "2019-04-30T06:33:04Z")

</div>

Can someone assist me in how I can update my discourse?

```plaintext
/launcher rebuild app

```

returns an error.

---

<div class="post-metadata">

### Author: ![techAPJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/techapj/32/342990_2.png) [@techAPJ](https://meta.discourse.org/u/techAPJ)
#### Post date: [30.Апрель.2019 07:04:51 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/220 "2019-04-30T07:04:51Z")

</div>

`./launcher rebuild app` is for [discourse\_docker](https://github.com/discourse/discourse_docker) based production setup. To update local/development Discourse instance you need:

```plaintext
cd ~/discourse
git pull origin master

```

---

<div class="post-metadata">

### Author: ![Chaboi\_3000](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chaboi_3000/32/163015_2.png) [@Chaboi\_3000](https://meta.discourse.org/u/Chaboi_3000)
#### Post date: [30.Апрель.2019 07:09:26 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/221 "2019-04-30T07:09:26Z")

</div>

> [@techAPJ](#):
>
> git pull origin master

I get this error @techAPJ,

```plaintext
error: Your local changes to the following files would be overwritten by merge:
	.gitignore
Please commit your changes or stash them before you merge.
Aborting

```

---

<div class="post-metadata">

### Author: ![techAPJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/techapj/32/342990_2.png) [@techAPJ](https://meta.discourse.org/u/techAPJ)
#### Post date: [30.Апрель.2019 07:11:42 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/222 "2019-04-30T07:11:42Z")

</div>

The error message is pretty clear:

> Please commit your changes or stash them before you merge.

If you want to ignore your local changes, do:

```plaintext
git fetch origin
git reset --hard origin/master

```

---

<div class="post-metadata">

### Author: ![Decorbuz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/decorbuz/32/235124_2.png) [@Decorbuz](https://meta.discourse.org/u/Decorbuz)
#### Post date: [05.Ноябрь.2021 22:35:40 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/300 "2021-11-05T22:35:40Z")

</div>

Следуя руководству с форума Ruby on Rails, я застрял на шаге 7.

Это, вероятно, очень «начальный» вопрос, но как мне «указать» на экспериментальную ветку, на которую была ссылка в той теме? Я попробовал несколько вариантов, но каждый раз получал сообщение `Unknown command mini_racer`.

---

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [05.Ноябрь.2021 23:28:36 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/302 "2021-11-05T23:28:36Z")

</div>

Они вполне могут задать вопрос здесь.

В этом руководстве мы ссылаемся на [специфические инструкции для M1, которые мы написали и которые упоминаются на форуме Rails](https://discuss.rubyonrails.org/t/tips-and-tricks-for-developing-rails-applications-on-apple-silicon/77089).

> [@Decorbuz](#):
>
> Возможно, это очень «новичковый» вопрос, но как мне «указать» на экспериментальную ветку, на которую была ссылка в той теме?

Мне нужно будет позже посмотреть на моём M1 Air, и, возможно, мои коллеги, которые недавно настроили новые Mac, знают лучше, нужно ли это вообще сейчас, но в шаге 7 есть пример того, как указать ветку:

```plaintext
gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

```

Так что вам нужно отредактировать эту строку в локальной версии discourse/Gemfile:

> <https://github.com/discourse/discourse/blob/main/Gemfile#L126>

а затем выполнить `bundle install`.

---

<div class="post-metadata">

### Author: ![Decorbuz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/decorbuz/32/235124_2.png) [@Decorbuz](https://meta.discourse.org/u/Decorbuz)
#### Post date: [05.Ноябрь.2021 23:49:25 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/303 "2021-11-05T23:49:25Z")

</div>

> [@pfaffman](#):
>
> Если вы не следовали этим инструкциям (я не вижу шага 7), то это не самое подходящее место для вашего вопроса.

Ссылка находится прямо вверху оригинального сообщения.

Тема на форуме Ruby on Rails уже много месяцев неактивна. Автор оригинального поста не проявлял активности с февраля и не отвечал ни на один комментарий с просьбой о помощи.

Здесь больше людей, готовых мне помочь. Просто к сведению. 😉

> [@blake](#):
>
> В шаге 7 приведён пример того, как указать ветку:
> 
> `gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'`

Я попробовал скопировать это в Терминал, но получил ту же ошибку «Unknown command mini\_racer», что и раньше.

Признаю, что руководство с форума Ruby on Rails в этом плане не так понятно, как я надеялся.

Заранее извиняюсь… 🙏

---

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [05.Ноябрь.2021 23:50:58 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/304 "2021-11-05T23:50:58Z")

</div>

> [@Decorbuz](#):
>
> Я попытался скопировать это в Терминал и получил ту же ошибку «Unknown command mini\_racer», что и раньше.

Это не команда для запуска. Вам нужно РЕДАКТИРОВАТЬ фактический текстовый файл под названием «Gemfile», расположенный внутри директории discourse.

---

<div class="post-metadata">

### Author: ![Decorbuz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/decorbuz/32/235124_2.png) [@Decorbuz](https://meta.discourse.org/u/Decorbuz)
#### Post date: [05.Ноябрь.2021 23:54:03 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/305 "2021-11-05T23:54:03Z")

</div>

> [@blake](#):
>
> Вам нужно отредактировать фактический текстовый файл под названием «Gemfile», находящийся внутри директории discourse.

_Ой! :facepalm:_

Спасибо! Сейчас же попробую.

На мой взгляд, кому-то следует отредактировать руководство на форуме Ruby on Rails и предоставить дополнительные разъяснения касательно шага 7. Это лишь моё мнение.

Я скоро вернусь. Подождите секунду…

---

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [06.Ноябрь.2021 00:01:28 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/306 "2021-11-06T00:01:28Z")

</div>

Извините, мне нужно бежать, но, кажется, исправление для mini\_racer на Mac M1 уже внесено в основную ветку. Я только что проверил свой Gemfile на Mac M1, и он не был изменён. Так что, думаю, вы можете пропустить шаг 7.

---

<div class="post-metadata">

### Author: ![Decorbuz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/decorbuz/32/235124_2.png) [@Decorbuz](https://meta.discourse.org/u/Decorbuz)
#### Post date: [06.Ноябрь.2021 00:04:09 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/307 "2021-11-06T00:04:09Z")

</div>

Я выполнил шаг 8 и получил ошибку `Could not locate Gemfile`.

Я (думаю) смог разобраться со шагом 7, но шаг 8 по-прежнему вызывает трудности и выдаёт ошибку, упомянутую выше.

---

<div class="post-metadata">

### Author: ![blake](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/blake/32/157322_2.png) [@blake](https://meta.discourse.org/u/blake)
#### Post date: [06.Ноябрь.2021 13:10:27 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/308 "2021-11-06T13:10:27Z")

</div>

> [@Decorbuz](#):
>
> Я выполнил шаг 8 и получил ошибку `Could not locate Gemfile`.

Вам нужно находиться внутри директории discourse при запуске `bundle install`.

> [@techAPJ](#):
>
> ## Клонирование Discourse
> 
> Склонируйте репозиторий Discourse в папку `~/discourse`:
> 
> ```plaintext
> git clone https://github.com/discourse/discourse.git ~/discourse
> 
> ```
> 
> `~` обозначает домашнюю папку, поэтому исходный код Discourse будет доступен в вашей домашней папке.
> 
> ## Инициализация Discourse
> 
> Перейдите в папку Discourse:
> 
> ```plaintext
> cd ~/discourse
> 
> ```
> 
> Установите необходимые gems
> 
> `bundle install`

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [06.Ноябрь.2021 13:45:20 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/309 "2021-11-06T13:45:20Z")

</div>

> [@merefield](#):
>
> На самом деле это немного больше, чем пара долларов (это VPS с 4 ГБ ОЗУ и 8 ядрами — вероятно, избыточно), но это позволяет мне разрабатывать где угодно и на любой платформе. Производительность довольно высокая, однако при перезапуске веб-сервера всегда будет задержка в несколько секунд.

Привет, @merefield! Можешь немного подробнее описать свою удалённую настройку?

При разработке темы я могу [вносить изменения на живом сайте](https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-macos-for-development/15772/270), но для разработки плагина, похоже, нет другого выхода, кроме как делать это на локальной машине, имея там всю кодовую базу Discourse (с моим плагином поверх неё).

В результате при любом изменении (кроме CSS) при разработке плагина после перезагрузки: 1) включается вентилятор моего компьютера и 2) перезагрузка занимает solid 30 секунд. А если нужно перезапустить сервер, это занимает несколько минут.

Эти задержки сильно накапливаются — в итоге на реализацию чего-то может уйти _целый час_, тогда как при обычном рабочем процессе (где есть горячая перезагрузка или максимум 2–3 секунды на изменение) это заняло бы _15 минут_.

Поэтому буду благодарен за любые предложения по ускорению процесса.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [06.Ноябрь.2021 15:09:50 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/310 "2021-11-06T15:09:50Z")

</div>

Это, пожалуй, лучше обсудить в теме [Ubuntu](https://meta.discourse.org/t/beginners-guide-to-install-discourse-on-ubuntu-for-development/14727), так как я запускаю установку на облачном сервере с nginx и полной настройкой DNS (без Docker), поэтому я фактически работаю с доменом. Всё выполняется из терминала. Сейчас у меня даже Ember CLI отлично работает в этой среде.

Это не самый быстрый вариант, но достаточно быстрый. Плюс в том, что можно запускать и тестировать полноценные HTTPS-сервисы обратного вызова.

Самая быстрая среда для разработки плагинов, о которой я знаю, — это локальный [Docker Dev на WSL2](https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009?u=merefield), который _ **летит** _. К тому же её очень просто поддерживать. К сожалению, _discourse\_theme_, насколько мне известно, в этой среде пока не работает, поэтому для этой работы я вернулся к своему облачному серверу.

Немного странно, почему Apple отстаёт в этом вопросе? Инженеры Microsoft показали себя очень сообразительными.

---

<div class="post-metadata">

### Author: ![Nacho\_Caballero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nacho_caballero/32/130189_2.png) [@Nacho\_Caballero](https://meta.discourse.org/u/Nacho_Caballero)
#### Post date: [26.Ноябрь.2021 14:31:38 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/312 "2021-11-26T14:31:38Z")

</div>

В случае, если у кого-то возникают ошибки при установке Ruby 2.7.3, похоже, что после Xcode 12 что-то изменилось, что ломает процесс установки с помощью rbenv:

> <https://github.com/rbenv/ruby-build/issues/1489>
>
> \_tldr\_: This is an installation problem and solution. Maybe ya'll can do somethi…ng about this in \`ruby-build\` itself? Maybe not. In any case, it's here for the search bots.
> 
> \### Problem
> 
> \`\`\`sh
> $ rbenv install 2.1.7
> \`\`\`
> 
> output
> \`\`\`
> BUILD FAILED (Mac OS X 10.15.7 using ruby-build 20200926)
> 
> Inspect or clean up the working tree at /var/folders/hk/6ghd603s4gggg2kpspf5jjth0000gn/T/ruby-build.20201110215242.31778.FSCdTL
> Results logged to /var/folders/hk/6ghd603s4gggg2kpspf5jjth0000gn/T/ruby-build.20201110215242.31778.log
> \`\`\`
> 
> end of logfile output
> \`\`\`
> \# ruby-build.20201110215242.31778.log
> 
> 3 warnings and 4 errors generated.
> make\[2\]: \*\*\* \[ossl\_pkcs7.o\] Error 1
> make\[1\]: \*\*\* \[ext/openssl/all\] Error 2
> make\[1\]: \*\*\* Waiting for unfinished jobs....
> compiling objspace\_dump.c
> installing default objspace libraries
> linking shared-object objspace.bundle
> linking shared-object nkf.bundle
> 13 warnings generated.
> linking shared-object date\_core.bundle
> make: \*\*\* \[build-ext\] Error 2
> \`\`\`
> 
> sample line from openssl extension \[MakeMakefile\](https://ruby-doc.org/stdlib-2.1.7/libdoc/mkmf/rdoc/MakeMakefile.html) log:
> \`\`\`
> \# \<BUILD\_DIR\>/ruby-2.1.7/ext/openssl/mkmf.log 
> conftest.c:13:15: error: implicit declaration of function 'OPENSSL\_cleanse' is invalid in C99 \[-Werror,-Wimplicit-function-declaration\]
> \`\`\`
> 
> \### Solution
> 
> \`\`\`sh
> $ CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.1.7
> \`\`\`
> 
> output:
> \`\`\`
> Downloading openssl-1.0.2u.tar.gz...
> \-\> https://dqw8nmjcqpjn7.cloudfront.net/ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
> Installing openssl-1.0.2u...
> Installed openssl-1.0.2u to /Users/\*\*\*/.rbenv/versions/2.1.7
> 
> Downloading ruby-2.1.7.tar.bz2...
> \-\> https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.bz2
> Installing ruby-2.1.7...
> 
> WARNING: ruby-2.1.7 is past its end of life and is now unsupported.
> It no longer receives bug fixes or critical security updates.
> 
> ruby-build: using readline from homebrew
> Installed ruby-2.1.7 to /Users/\*\*\*/.rbenv/versions/2.1.7
> \`\`\`
> 
> \### Explanation
> 
> \[XCode 12 was released September 16, 2020.\](https://en.wikipedia.org/wiki/Xcode#12.x\_series) \[Apple changed the default \`CFLAGS\` for \`clang\`.\](https://developer.apple.com/documentation/xcode-release-notes/xcode-12-release-notes)
> \> Clang now reports an error when you use a function without an explicit declaration when building C or Objective-C code for macOS (-Werror=implicit-function-declaration flag is on). 
> 
> This change prevents this version of Ruby (and possibly others) from compiling native extensions like \`openssl\` and \`zlib\`. Unfortunately, those errors only appear in the corresponding \`mkmf.log\` for the extensions.
> 
> \[This could also affect building some gems that use C code\](https://github.com/macournoyer/thin/pull/364).
> \`\`\`sh
> gem install \<GEMNAME\> -- --with-cflags="-Wno-error=implicit-function-declaration"
> 
> \`\`\`

Я постоянно получал это сообщение, даже несмотря на то, что у меня установлены последние версии psych и libyaml:

```plaintext
Похоже, что в вашей установке Ruby отсутствует модуль psych (для вывода YAML).
Чтобы устранить это предупреждение, установите libyaml и переустановите Ruby.

```

Я попробовал обходной путь, предложенный в руководстве, но продолжал получать ту же ошибку и в итоге был вынужден использовать rvm:

```plaintext
rvm install 2.7.3

```

---

<div class="post-metadata">

### Author: ![JQ331](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@JQ331](https://meta.discourse.org/u/JQ331)
#### Post date: [09.Декабрь.2021 17:50:40 UTC](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772/313 "2021-12-09T17:50:40Z")

</div>

Что касается того, как ускорить программирование при создании плагина, я недавно изменил свой подход. И это работает отлично. Суть в том, чтобы перенести все элементы фронтенда в компонент темы, а в самом плагине писать только бэкенд-код. Я знаю, что другие уже пришли к такому решению. Но теперь, когда я делаю именно так, программирование становится намного быстрее и приятнее. Подробнее [здесь](https://meta.discourse.org/t/developing-plugins-faster/211638).

[Next page](https://meta.discourse.org/t/install-discourse-on-macos-for-development/15772.md?page=2)
