Riot.jsのcliツールを作りたいなぁというお話。(協力者募集中)
Riot.js Advent Calendar 2017 の3日目の記事になります! 今回もあまりRiot.js(以下Riot)の書き方やtipsなど、テクニカルなプログラミングの話ではありませんのでご注意ください。
Riot以外のフレームワークやライブラリのCLI
いくつかピックアップして調べてみました。
Angular
, Ionic
などのフレームワークや、React
, Vue.js
などのライブラリのCLIと、Riot
のCLIには差があります。
簡単ですが、まとめてみました。
Name | version | generater | Overview |
---|---|---|---|
angular-cli |
1.5.5 | あり | いわゆるフレームワークのCLI。devサーバー起動、ビルド、各コンポーネントの作成など必要なものは全て備わっている。 |
ionic-cli |
3.19.0(*1) | あり | angular-cliと同等の機能を備えつつ、各プラットフォームへのビルドやIonic社独自のサービスとの連携機能も実装されている。 |
create-react-app |
1.4.3 | なし | プロジェクトの雛形作成のみ。 |
vue-cli |
2.9.2 | なし | プロジェクトの雛形作成のみ。(*2) |
riot-cli |
3.0.4 | なし | tagファイルのコンパイルに関する機能のみ。 |
React
のCLIを探してみましたが、create-react-app
以外は有志の方が個人で開発されたCLIしか見当たりませんでした。(もしあれば教えていただけると幸いです)
こうしてみると、RiotのCLIは最低限の機能のみですが、CLIには開発を手助けする機能が備わってほしいなと思い、自分で開発しようと思いたちました。
一旦名前はcreate-riot-app(仮)
にしようと考えています。
riot-create-appに欲しいと思う機能
想定している機能をざっと書き出します。
- 対話型のプロジェクト雛形作成
riot-route
- 必要
- 不要
- ES6のトランスパイラ
- Babel
- Buble
- バンドラの選択
- Webpack
- Rollup
- テストフレームワークの選択
- 不要
- Ava
- Jasmine
- Mocha
- ESLint
- 必要
- 不要
- 雛形の作り方
「こんな機能も欲しい!_とか、「いやこれはいらんだろ」とかご意見ありましたら是非コメントなり、私宛にメールくだされば善処します!(※もちろん共同開発するというお声も大歓迎ですw)よろしくお願いします(`・ω・´)ゞ
終わりに
Riotを使い始めて自分もそろそろ3年目に突入しました。当たり前ですがRiotがフロントエンド界隈の最高のツールではないです。他のフレームワークやライブラリには存在する素晴らしい機能がRiotには備わっていない(例えばtwo way data-binding
)ことがよくありました。しかし、Riotの哲学は公式ページにTOPにも記載があるように
Simple and elegant component-based UI library
です。すなわち、「軽くてミニマル、それでいてパワフルなAPIを備えた、UIをデザインするライブラリ」なのです。最低限必要な機能を実装しつつ、その上で軽さ・小ささを追い求めた結果今の形になったのだと思います。
もちろん今もRiotは進化し続けています。今までのRiotは遅いと言われ続けてきましたが、今のRiotはかなり速度改善がなされ、劇的に速くなりました。(手前味噌ですが)また来年には、待望のv4
のリリースが来ると思います。(v4については別の日にまたブログを書きます)
色んなフレームワークを触ってみましたが、やっぱり自分はRiotは好きですし、書きやすいなーと思います。大規模向けではないですが、入門の敷居が低くサクッと作れる、かつ従来のhtml, css, JavaScriptの構成そのままの書き方ができるものはRiotだけだと思います。
ではでは(*・ω・)ノ