web-dev-qa-db-ja.com

Blazorサーバー側のホットリロードはありますか?

質問が1つだけあります。ブレザーアプリをホットリロードする方法はありますか?少なくとも、.razorファイル?現在、ローカルでアプリをホストしていますIIS(IIS express)ではありません)。

インターネットで調べていましたが、役に立たなかったです。

アンサリングありがとうございました:)

6
cebilon123

Blazorプロジェクトに取り組んでいる@ danroth27によると、2020年11月に予定されている.NET 5のホットリロードが計画されています。

https://github.com/dotnet/aspnetcore/issues/5456#issuecomment-584219488

@MauricioAtanacheが言うように、ドットネット監視を使用できますが、監視するファイルを追加することを忘れないでください。例:

dotnet watch --project BlazorTest.Server run

BlazorTest.Server.csprojファイル:

<ItemGroup>
    <Watch Include="..\**\*.razor" />
    <Watch Include="..\**\*.scss" />
    <Watch Include="..\**\*.cs" />
</ItemGroup>

ただし、サーバーを再起動するため、ホットリロードはtrueではありませんが、ブラウザーで手動で更新する必要があります。

これを解決するには、browser-syncウェブアプリのプロキシとして設定します。

例:

browser-sync start --proxy http://localhost:50000/ --files '**/*.cshtml, **/*.css, **/*.js, **/*.htm*'  

https://weblog.west-wind.com/posts/2019/May/18/Live-Reloading-Server-Side-ASPNET-Core-Apps

@martaspによるBlazorLiveReloadというGithub上のプロジェクトもあり、ページを更新せずにBlazor Live Reloadを処理することになっています。

著者から:

かみそりエンジンバージョン3を使用してコンポーネントをc#クラスにコンパイルします。次に、Roslynコンパイラーを使用して、これらのクラスをAssemblyにコンパイルしました。最後に、リフレクションを使用してアセンブリからapp.razorコンポーネントをロードし、Steve Sanderson Test Hostで変更したライブラリを使用して、コンポーネントをプレーンHTMLに変換しました。 HTMLファイルをリアルタイムで提供するために、WebSocketを使用して全二重通信を行いました。

私は自分でこのプロジェクトをテストしていないので、うまくいくかどうかはわかりません。

https://github.com/martasp/BlazorLiveReload

問題に関する一般的なスレッド:

https://github.com/dotnet/aspnetcore/issues/5456

1
Ogglas

LiveSharpでステートフルBlazorホットリロードがサポートされるようになりました( https://www.livesharp.net

あなたはそれがここで機能しているのを見ることができます: https://www.youtube.com/watch?v=MCh5-44UBpM

免責事項:私は作者です

0
ionoy