Deno Fresh のアップデート
Freshは、複数の独立してバージョン管理され、リリースされているコンポーネントから構成されています。
- Fresh (https://deno.land/x/fresh)
- Preact (https://esm.sh/preact)
- preact-render-to-string (https://esm.sh/preact-render-to-string)
また、一部のプラグインには独自の依存関係があり、それらも独立してアップデートできます。
- Twind (https://esm.sh/twind) (Twindプラグイン向け)
これらのコンポーネントは基本的に独立してアップデート可能ですが、Freshの特定のバージョンは、依存関係の特定のバージョンを必要とする場合があります。これについては、以下にドキュメント化されています。
依存関係のバージョンを確認し 、互換性を確保しながらアップデートすることが推奨されます。
Fresh version | Preact | preact-render-to-string | Deno |
---|---|---|---|
1.0.0-1.0.2 | >=10.8.1 <11.0.0 | >=5.2.0 <6.0.0 | >= 1.23.0 |
1.1.0-1.1.5 | >=10.8.1 <11.0.0 | >=5.2.0 <6.0.0 | >= 1.25.0 |
1.2.0 | >=10.15.0 <11.0.0 | >=6.1.0 | >= 1.25.0 |
依存関係のアップデート
依存関係をアップデートするには、次の2つの方法があります。
- Freshアップデーターを使用して、プロジェクトの依存関係を更新する。
deno.json
ファイル内の依存関係バージョンを手動で更新する。
自動アップデーター
自動アップデーターは、コマンドラインツールで、プロジェクトのdeno.json
ファイルを最新バージョンのFreshとその依存関係にアップデートします。また、プロジェクトのコードを最新のFreshプロジェクトに推奨されるパターンに更新するためのコードモッドも含まれている場合があります。
自動アップデーターを実行するには、プロジェクトのルートディレクトリで次のコマンドを実行します。
$ deno run -A -r https://fresh.deno.dev/update
実行後、プロジェクトに加えられる変更内容を確認するプロンプトが表示されます。
手動での依存関係のアップデート
プロジェクトの依存関係を手動で更新するには、プロジェクトディレクトリのルートにあるdeno.json
ファイルを編集します。依存関係のバージョンは、このファイル内のURLにエンコードされています。例えば、Freshのバージョンを1.0.2
から1.1.3
に更新し、Preactを最新バージョンにアップデートする手順は以下の通りです。
{
"imports": {
- "$fresh/": "https://deno.land/x/fresh@1.0.2/",
+ "$fresh/": "https://deno.land/x/fresh@1.1.5/",
- "preact": "https://esm.sh/preact@10.8.1",
- "preact/": "https://esm.sh/preact@10.8.1/",
+ "preact": "https://esm.sh/preact@10.11.0",
+ "preact/": "https://esm.sh/preact@10.11.0/",
- "preact-render-to-string": "https://esm.sh/*preact-render-to-string@5.2.0",
+ "preact-render-to-string": "https://esm.sh/*preact-render-to-string@6.1.0",
"twind": "https://esm.sh/twind@0.16.17",
"twind/": "https://esm.sh/twind@0.16.17/"
}
}
- Fresh: バージョン
1.1.3
に更新。 - Preact: 最新バージョンに更新するために、
@latest
を使用。
手動でバージョンを変更した後、プロジェクトを再実行して、依存関係が正しく更新されていることを確認してください。
自動アップデートチェック
Freshは、CI環境外で実行されている場合、定期的に新しいバージョンが利用可能かどうかをチェックします。このチェックは1日1回行われますが、FRESH_NO_UPDATE_CHECK=true
環境変数を設定することで無効化することができます。
Code mods
Code modsは、Freshプロジェクトの最新の推奨パターンにコードを更新するために実行できる小さなスクリプトです。Code modsは、自動アップデーターを通じて実行できます。ただし、Code modsがすべてのケースをカバーできない場合があるため、一部のコードは手動で更新する必要があるかもしれません。このセクションでは、現在利用可能なCode modsについて説明します。
クラシカルJSX -> 自動JSX
- このコードモッドは、Freshバージョン1.1.0以上でのみ利用可能です。
従来のJSX変換(/** @jsx h */
プラグマに依存する方法)は、FreshプロジェクトでJSXを使用する推奨方法ではなくなりました。代わりに、バージョン 1.1.0以降、Freshプロジェクトでは、JSXプラグマやPreactのインポートが不要な自動JSX変換を使用する必要があります。
- /** @jsx h */
- import { h } from "preact";
export default function Page() {
return <div>Hello world!</div>;
}
コードモッドは、あなたのdeno.json
ファイルを更新し、自動JSX変換を有効にするための関連するコンパイラオプションを含めます。その後、プロジェクト全体をスキャンし、/** @jsx h */
プラグマおよびimport { h } from "preact"
ステートメントを削除します。
クラシックTwind -> Twindプラグイン
このCode modsは、Fresh 1.1.0以降でのみ利用可能です。
Freshバージョン1.1.0では、FreshでTwindを使用するための新しいプラグインが導入されました。このプラグインは、以前の生のTwind統合よりも使いやすくなっています。
このコードモッドは、プロジェクトを新しいTwindプラグインに移行します。main.ts
ファイルを更新してTwindプラグインをインポートし、plugins
配列に追加します。また、tw
関数の多くの不要な使用や、不要なTwindのインポートを削除するためにファイルを更新します。コードモッドはほとんどのケースに対応しますが、一部のコードは手動で更新する必要があるかもしれません。さらに、カスタム設定を使用している場合は、twind.config.ts
を手動で更新する必要があります。
