bun + Vite + Elm で環境構築
1. bun の公式ドキュメントに沿って、bun create vite my-app --template vanilla-ts を実行する
https://bun.sh/guides/ecosystem/vite
vanilla でも良いが、なんとなく TypeScript を採用
全部型付けで統一したいじゃん radish-miyazaki.icon
https://ja.vitejs.dev/guide/
2. cd my-app && bun i && bun run dev でサーバが立ち上がることを確認
3. bun i -d vite-plugin-elm で Elm 用のプラグインを追加
https://github.com/hmsk/vite-plugin-elm
4. vite.config.ts を作成し、以下のように記述
code:vite.config.ts
import { defineConfig } from "vite";
import elm from "vite-plugin-elm";
// https://vitejs.dev/config/
export default defineConfig({
plugins: elm(),
});
5. src 内の main.ts 以外のファイルをすべて削除し、main.ts も以下のように書き換える
必要ならば取っておいても 🙆
code:main.ts
import { Elm } from "./Main.elm";
Elm.Main.init({
node: document.getElementById("app"),
});
IDE 上だと、from "./Main.elm" なんか見つからないよ!って怒られる。
このままだとビルド出来ないので、即席の型ファイルを用意する
https://zenn.dev/ababup1192/articles/a51c8e2ddcde77#elmが型エラー
code:Main.elm.d.ts
export var Elm: any;
これでビルド可能に(IDE 上は怒られ続ける)
6. src/Main.elm を作成する
ここでは必要最低限
code:Main.elm
module Main exposing (main)
import Html
main = Html.text "Hello, World!"
7. package.json の scripts の vite コマンドを bunx --bun vite に置き換える
node の代わりに bun を使ってコマンドを実行するように明示する
https://arc.net/l/quote/dvkmmddy
8. bun run dev や bun run build、bun run preview がそれぞれ動作するかチェックする
9. 🎉 Happy coding 🎉
補足
vite-elm-template 使うのもありか
https://github.com/lindsaykwardell/vite-elm-template
bunx tiged lindsaykwardell/vite-elm-template my-elm-app
tiged は Git リポジトリの一部だけをコピーするコマンド
テストランナーは note-test-runner か elm-test-rs か
https://github.com/rtfeldman/node-test-runner : いわゆる elm-test コマンド
https://github.com/mpizenberg/elm-test-rs : elm-test-rs コマンド
live-elm: https://www.elm-live.com/
参考
https://zenn.dev/y047aka/articles/install-elm-2021
https://dev.to/lindsaykwardell/setting-up-an-elm-project-in-2022-lj4
https://zenn.dev/ababup1192/articles/a51c8e2ddcde77#elmが型エラー
#Elm