FreshにTwind v1サポートが入りました
#Fresh #Twind
概要
Fresh v1.1.4でTwind v1向けのプラグインが追加されました。
※Freshは元々、 Twind v0.16向けのサポートのみを提供していました。
Deno SaaSKitでも早速活用されているので、そちらも参考にするとよさそうです。
セットアップ
v1.1.5を想定しています。
code:shell
# NOTE: 途中でTailwind CSSを使うか質問されますが、ここでyと答えるとTwind v0.16向けのプラグインが有効化されるためご注意
$ deno run -A https://deno.land/x/fresh@1.1.5/init.ts demo-project
...
Fresh has built in support for styling using Tailwind CSS. Do you want to use this? y/N N
...
import_map.jsonにtwindのマッピングを追加します。(twindのバージョンについてはhttps://deno.land/x/fresh@$VERSION/plugins/twindv1.tsを参照ください)
code:import_map.json
{
"imports": {
// 以下を追加
"twind": "https://esm.sh/@twind/core@1.1.3"
}
}
twind.config.tsを用意して、twindの設定を行います。
code:twind.config.ts
import type { Options } from "$fresh/plugins/twindv1.ts";
import { defineConfig } from "twind";
import tailwind from "https://esm.sh/@twind/preset-tailwind@1.1.3";
export default {
...defineConfig({
presets: tailwind(),
}),
selfURL: import.meta.url,
} as Options;
main.tsを以下のように編集します。
code:main.ts
/// <reference no-default-lib="true" />
/// <reference lib="dom" />
/// <reference lib="dom.iterable" />
/// <reference lib="dom.asynciterable" />
/// <reference lib="deno.ns" />
import { start } from "$fresh/server.ts";
import manifest from "./fresh.gen.ts";
// twindv1プラグインを読み込みます。
import twindv1 from "$fresh/plugins/twindv1.ts";
import twindConfig from "./twind.config.ts";
await start(manifest, {
plugins: twindv1(twindConfig), // twindv1プラグインを適用します。
});
あとは通常通り、deno task startでサーバを起動できます。
参考
https://github.com/y3km21/ex-fresh-twind-resume-working
feat: add twind v1 plugin #946
fix: hydrate in twind-v1-plugin #1050