何のきっかけだったか忘れてしまったのだけれど、PureScript のパッケージマネージャ・ビルドツールで spago というものがあるのを見つけた。
少し試してみたらいい感じだったので、紹介したい。
背景
たいていの入門的記事には PureScript のビルドツールとして pulp 、パッケージマネージャとして bower をインストールするように書かれていると思う。
pulp はまあ、いいのだが、bower は公式サイトに
...psst! While Bower is maintained, we recommend using Yarn and Webpack or Parcel for front-end projects read how to migrate!
と書かれているように新しいプロジェクトではもう使わないようにしたほうがよさそうな雰囲気。
また代替として紹介される psc-package も少し触ってみたが、Pursuit で検索して見つけたパッケージが登録されていなくて使えなかったり、手動で含めようにもやり方がよくわからない・手軽にできない1のがいまいちな感じがした。
spago の紹介
spago は PureScript 向けのパッケージマネージャ・ビルドツール。
パッケージマネージャとしては psc-package と同じく package-set を利用しているが、dhall を使って簡単に上書きや追加ができるのがとてもうれしいところ。
spago そのものも Haskell で開発されているためか、npm でインストールしても余計な依存関係が全然ない。
また psc-package を使ったプロジェクトで spago init
とすれば、既存の設定を spago 用に移行してくれる。
この記事には
残念なのは
spago repl
がないこと。たぶん近いうちに追加されるだろうな。
とあるが、予想されていた通り現在は使用できるようになっている。
pulp + psc-package でできたことは大体 spago 一つで可能なようだ。
ただ1点私も残念に思うところがあって、それは pulp にはあった簡易サーバー機能がないこと。
フロントエンドアプリを作っていると、確認用にサーバーが欲しくなる時があり、pulp だと組み込み機能でそれができたのだが、spago ではどうやらできないもよう。
その辺は Webpack や Parcel と組み合わせてやってくれということだろうか。
-
package-set に PR して入れてもらわなければならないっぽい? 英語がちゃんと読めていないだけかもしれない…。 ↩