# カスタマイズにテーマを使うかプラグインを使うか：メリットとデメリット

**URL:** https://meta.discourse.org/t/pros-cons-of-using-theme-instead-of-plugin-for-customization/142255
**Category:** Development
**Created:** [2020 年 2 月 21 日午後 1:57 UTC](https://meta.discourse.org/t/pros-cons-of-using-theme-instead-of-plugin-for-customization/142255 "2020-02-21T13:57:14Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [2020 年 2 月 21 日午後 3:27 UTC](https://meta.discourse.org/t/pros-cons-of-using-theme-instead-of-plugin-for-customization/142255/3 "2020-02-21T15:27:56Z")

</div>

【テーマの JavaScript を複数のファイルに分割】（[https://meta.discourse.org/t/splitting-up-theme-javascript-into-multiple-files/119369）が追加されたことで、テーマを通じてプラグインと同様に](https://meta.discourse.org/t/splitting-up-theme-javascript-into-multiple-files/119369%EF%BC%89%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%9F%E3%81%93%E3%81%A8%E3%81%A7%E3%80%81%E3%83%86%E3%83%BC%E3%83%9E%E3%82%92%E9%80%9A%E3%81%98%E3%81%A6%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A8%E5%90%8C%E6%A7%98%E3%81%AB) Ember を使って「あらゆること」を実行できるようになりました。

したがって、ルートを作成したり、シリアライザーを変更したり、カスタムデータを保存したりする必要がない場合は、テーマだけで目的を達成できる可能性が高いです。

サポートの観点から見たカスタムプラグインの最大の課題は、サイトの停止です。これは通常、プラグインがコアの Rails クラスやメソッドにパッチを当てており、そのクラスやメソッドが変更されたにもかかわらず、プラグインがまだそれに対応するよう更新されていないことが原因です。Ember 側で何らかの変更があり、その結果としてテーマやテーマコンポーネントが破損した場合、サイトが正しくレンダリングされなくなることがありますが、`/safe-mode` を使用して素早く無効化できます。

> [@Overgrow](#):
>
> 開発者の視点から見ると、テーマはあまりにも煩雑だと感じます。コード変更をリアルタイムで確認できるよう、もう一つのツールが必要です - [テーマ CLI コンソール](https://meta.discourse.org/t/discourse-theme-cli-console-app-to-help-you-build-themes/82950/97)。

ご指摘の通りだと思います。また、その gem を使用すれば、ローカルでテーマを開発し、API キーを持っている任意の Discourse サイト（[theme-creator.discourse.org](http://theme-creator.discourse.org) も含む）と同期させることができます。その gem 1 つを実行していれば、ローカルの開発環境をセットアップする必要さえありません。

---

_[View the full topic](https://meta.discourse.org/t/pros-cons-of-using-theme-instead-of-plugin-for-customization/142255)._
