Fix slow build process of BlazorUI projects (#12649)#12650
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThe changes update frontend watch rules, add shared web-client wiring, make demo WebAssembly hosting conditional, introduce development SCSS watching, and normalize punctuation in PDF viewer documentation and comments. ChangesBlazorUI build and hosting
PDF documentation punctuation
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Developer
participant DemoServer
participant ScssCompilerService
participant Sass
participant Browser
Developer->>DemoServer: Start development server
DemoServer->>ScssCompilerService: Start WatchScssFiles
ScssCompilerService->>Sass: Launch Sass watch process
Sass->>Browser: Update compiled CSS
DemoServer->>Browser: Serve Server or WebAssembly boot assets
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj (1)
75-76: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winCentralize the
Bit.BlazorES2019version to avoid silent breakage.The version
10.5.0-pre-08is hardcoded in the glob path at line 76 and must manually match thePackageReferenceat line 27. If the package is updated without updating the glob, the copy target silently matches zero files and the dev server 404s on_framework/bit.blazor.*.es2019.js.♻️ Suggested refactor: use a shared MSBuild property
<!-- Add to the PropertyGroup near the top --> +<BitBlazorES2019Version>10.5.0-pre-08</BitBlazorES2019Version>Then reference it in both locations:
-<PackageReference Include="Bit.BlazorES2019" Version="10.5.0-pre-08" /> +<PackageReference Include="Bit.BlazorES2019" Version="$(BitBlazorES2019Version)" />-<!-- The version here must match the Bit.BlazorES2019 PackageReference above. --> -<_BitBlazorES2019Scripts Include="$(NuGetPackageRoot)bit.blazores2019\10.5.0-pre-08\contentFiles\any\net10.0\wwwroot\_framework\*.js" /> +<_BitBlazorES2019Scripts Include="$(NuGetPackageRoot)bit.blazores2019\$(BitBlazorES2019Version)\contentFiles\any\net10.0\wwwroot\_framework\*.js" />🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj` around lines 75 - 76, Centralize the Bit.BlazorES2019 version used by the project by defining one shared MSBuild property and referencing it from both the PackageReference and the _BitBlazorES2019Scripts Include path. Remove the hardcoded 10.5.0-pre-08 value from the glob so package updates cannot leave the script path out of sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor`:
- Around line 11-13: Update the normal render-mode selection in App.razor to
honor includeWasm, falling back to the prerender-enabled Blazor Server mode when
WebAssembly is disabled; expose that server mode publicly in AppRenderMode
alongside the existing no-prerender modes. Preserve AppRenderMode.Current only
when includeWasm is enabled.
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cs`:
- Around line 14-96: Handle startup exceptions within WatchScssFiles instead of
allowing them to fault the background task until shutdown. Wrap the process
setup and watcher startup flow, including Process.Start, job assignment,
output-reader initialization, and app.WaitForShutdownAsync, in exception
handling that logs the failure and returns because SCSS watching is best-effort
development tooling.
---
Nitpick comments:
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj`:
- Around line 75-76: Centralize the Bit.BlazorES2019 version used by the project
by defining one shared MSBuild property and referencing it from both the
PackageReference and the _BitBlazorES2019Scripts Include path. Remove the
hardcoded 10.5.0-pre-08 value from the glob so package updates cannot leave the
script path out of sync.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 16cd81c3-77c8-4cc4-957c-2298b161bd7d
📒 Files selected for processing (20)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/.gitignoresrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
🧹 Nitpick comments (3)
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razor (2)
67-67: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAvoid self-closing non-void HTML elements.
Although the Blazor compiler correctly handles self-closing
divtags, standard HTML5 considersdiva normal (non-void) element. Using explicit closing tags (<div></div>) aligns better with standard HTML practices and avoids potential issues with other parsers or tools.♻️ Proposed refactor
- <div class="bswup-progress-text" /> + <div class="bswup-progress-text"></div>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razor` at line 67, Replace the self-closing bswup-progress-text div in AppBswupProgressBar with an explicit opening and closing div pair, preserving its class and surrounding markup.
66-66: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider using standard boolean syntax for component parameters.
For component parameters, it is more idiomatic and less prone to parsing ambiguity to use strings (
"false","true") or explicit C# expressions (@false,@true) instead of unquoted values.♻️ Proposed refactor
- <BswupProgress AppContainer="`#app-container`" HideApp=false AutoReload=true ShowLogs=false> + <BswupProgress AppContainer="`#app-container`" HideApp="false" AutoReload="true" ShowLogs="false">🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razor` at line 66, Update the BswupProgress component invocation to use explicit boolean parameter syntax for HideApp, AutoReload, and ShowLogs, such as quoted values or explicit C# expressions, while preserving their current true/false settings.src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs (1)
5-5: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRename the static class to follow standard C# naming conventions.
Static classes should not be prefixed with
I, as that convention is strictly reserved for interfaces. Consider renaming this class toClientWebServiceCollectionExtensions.♻️ Proposed refactor
-public static class IClientWebServiceCollectionExtensions +public static class ClientWebServiceCollectionExtensions🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs` at line 5, Rename the static class IClientWebServiceCollectionExtensions to ClientWebServiceCollectionExtensions and update all references to the class while preserving its existing extension methods and behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razor`:
- Line 67: Replace the self-closing bswup-progress-text div in
AppBswupProgressBar with an explicit opening and closing div pair, preserving
its class and surrounding markup.
- Line 66: Update the BswupProgress component invocation to use explicit boolean
parameter syntax for HideApp, AutoReload, and ShowLogs, such as quoted values or
explicit C# expressions, while preserving their current true/false settings.
In
`@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs`:
- Line 5: Rename the static class IClientWebServiceCollectionExtensions to
ClientWebServiceCollectionExtensions and update all references to the class
while preserving its existing extension methods and behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b82f5fe8-b515-471e-8b1f-04bfee18d609
📒 Files selected for processing (19)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. Your plan includes PR reviews subject to rate limits. More reviews will be available in 12 seconds. |
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs (1)
5-8: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRemove the
Iprefix from the static class name.Naming a static class with an
Iprefix violates standard C# naming conventions, as it makes the class appear to be an interface.♻️ Proposed refactor
-public static class IClientWebServiceCollectionExtensions +public static class ClientWebServiceCollectionExtensions { public static IServiceCollection AddClientWebServices(this IServiceCollection services)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs` around lines 5 - 8, Rename the static class IClientWebServiceCollectionExtensions to ClientWebServiceCollectionExtensions, preserving the existing AddClientWebServices method and all behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfString.cs`:
- Line 61: Update the PDFDocEncoding mapping table in BitPdfString so byte 0x84
maps to the EM DASH character U+2014, while preserving the existing mappings for
adjacent bytes and the AsText decoding behavior.
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cs`:
- Line 49: Update the watch command construction in ScssCompilerService to
include the Dart Sass --load-path=. option alongside the existing arguments,
ensuring the project root is treated as a configured load path while preserving
the current watch behavior.
---
Nitpick comments:
In
`@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cs`:
- Around line 5-8: Rename the static class IClientWebServiceCollectionExtensions
to ClientWebServiceCollectionExtensions, preserving the existing
AddClientWebServices method and all behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: ab3ab1e0-6455-4a3f-be24-4ea10e6edb16
📒 Files selected for processing (39)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfRenderMode.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.razor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.scsssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.tssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfDocument.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfString.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfStructTree.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfUnsupportedEncryptionException.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfXRef.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Content/BitPdfTextExtractor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Filters/BitPdfJpegDecoder.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfCffFontParser.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfFont.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfSfntGlyphMapper.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfTrueTypeSanitizer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfType1Font.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfCanvasRenderResult.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfHtmlRenderer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfImage.cssrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.jsonsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cs`:
- Around line 24-26: Update the startup flow around app.RunAsync and
Bit.BlazorUI.Demo.Server.Services.ScssCompilerService.WatchScssFiles so the host
is started before awaiting the SCSS watcher, rather than invoking both
concurrently in Task.WhenAll. Preserve watcher behavior while allowing startup
failures from app.RunAsync to propagate immediately.
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.json`:
- Around line 4-6: Remove the explanatory comment from launchSettings.json so
the file remains valid JSON, and move the Blazor Server/WASM debugging guidance
to the relevant README.md or other documentation file. Preserve the
instructions, including the IncludeWasm build option, in the documentation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: db1cdf18-0585-4cde-9cdc-a2a9afe4ad8c
📒 Files selected for processing (38)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfRenderMode.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.razor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.scsssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.tssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfDocument.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfStructTree.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfUnsupportedEncryptionException.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfXRef.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Content/BitPdfTextExtractor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Filters/BitPdfJpegDecoder.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfCffFontParser.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfFont.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfSfntGlyphMapper.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfTrueTypeSanitizer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfType1Font.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfCanvasRenderResult.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfHtmlRenderer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfImage.cssrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.jsonsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/ClientWebServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cs`:
- Line 24: Update the SCSS compiler process setup around the toolPath
construction to invoke the Windows sass.cmd through cmd.exe (or the system
ComSpec) with /c, while preserving direct execution of sass on non-Windows
platforms. Ensure the redirected-output ProcessStartInfo receives the correct
executable and arguments so the watcher starts successfully on Windows.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 50b17789-c347-4252-abcb-99be99f7cebd
📒 Files selected for processing (39)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfRenderMode.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.razor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.scsssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.tssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfDocument.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfStructTree.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfUnsupportedEncryptionException.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfXRef.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Content/BitPdfTextExtractor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Filters/BitPdfJpegDecoder.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfCffFontParser.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfFont.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfSfntGlyphMapper.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfTrueTypeSanitizer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfType1Font.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfCanvasRenderResult.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfHtmlRenderer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfImage.cssrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.jsonsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/ClientWebServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csprojsrc/BlazorUI/Demo/README.md
💤 Files with no reviewable changes (1)
- src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.json
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj`:
- Around line 42-49: Remove the SCSS Watch item from the project files at
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj:42-49,
src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj:33-39,
src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj:32-38,
src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj:20-23, and
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj:34-37. Keep the
existing TypeScript and generated .razor.css Watch items unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 57d4716e-2e2f-4881-8f5d-3c5eb881a90d
📒 Files selected for processing (39)
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csprojsrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfRenderMode.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.razor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.scsssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/BitPdfViewer.tssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfDocument.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfStructTree.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfUnsupportedEncryptionException.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/BitPdfXRef.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Content/BitPdfTextExtractor.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Filters/BitPdfJpegDecoder.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfCffFontParser.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfFont.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfSfntGlyphMapper.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfTrueTypeSanitizer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Fonts/BitPdfType1Font.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfCanvasRenderResult.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfHtmlRenderer.cssrc/BlazorUI/Bit.BlazorUI.Extras/Components/PdfViewer/Core/Render/BitPdfImage.cssrc/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csprojsrc/BlazorUI/Bit.BlazorUI.slnxsrc/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csprojsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razorsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Extensions/IServiceCollectionExtensions.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.jsonsrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cssrc/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Startup/Middlewares.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Services/AppRenderMode.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Bit.BlazorUI.Demo.Client.Web.Shared.csprojsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Components/AppBswupProgressBar.razorsrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Extensions/ClientWebServiceCollectionExtensions.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebDeviceCoordinator.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web.Shared/Services/WebExceptionHandler.cssrc/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csprojsrc/BlazorUI/Demo/README.md
💤 Files with no reviewable changes (1)
- src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Properties/launchSettings.json
| <!-- dotnet watch: watch the scss/ts sources (so edits trigger the sass/tsc targets on rebuilds) AND | ||
| the generated .razor.css files (so dotnet watch's scoped-css hot reload pushes style changes to | ||
| the browser when the in-app scss compiler regenerates them - see ScssCompilerService in the demo | ||
| server project). Paths are rooted with $(MSBuildProjectDirectory) because dotnet watch resolves | ||
| relative Watch items of referenced projects against the startup project's directory. --> | ||
| <Watch Include="$(MSBuildProjectDirectory)\**\*.scss" Exclude="$(MSBuildProjectDirectory)\node_modules\**;$(MSBuildProjectDirectory)\bin\**;$(MSBuildProjectDirectory)\obj\**" /> | ||
| <Watch Include="$(MSBuildProjectDirectory)\**\*.ts" Exclude="$(MSBuildProjectDirectory)\node_modules\**;$(MSBuildProjectDirectory)\bin\**;$(MSBuildProjectDirectory)\obj\**;$(MSBuildProjectDirectory)\**\*.d.ts" /> | ||
| <Watch Include="$(MSBuildProjectDirectory)\**\*.razor.css" Exclude="$(MSBuildProjectDirectory)\node_modules\**;$(MSBuildProjectDirectory)\bin\**;$(MSBuildProjectDirectory)\obj\**" /> |
There was a problem hiding this comment.
🚀 Performance & Scalability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Show the relevant project files with line numbers, focusing on the watch entries and nearby targets.
for f in \
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj \
src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj \
src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj \
src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj \
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj
do
echo "===== $f ====="
nl -ba "$f" | sed -n '1,220p'
echo
done
# Search for relevant targets and comments that explain the watch/build behavior.
echo "===== SEARCH: Watch / dotnet watch / ScssCompilerService / sass / tsc ====="
rg -n --hidden -S \
-e 'ScssCompilerService' \
-e 'dotnet watch' \
-e '<Watch ' \
-e 'sass' \
-e 'tsc' \
-e 'ScopedCss' \
-e 'Target Name=' \
src/BlazorUIRepository: bitfoundation/bitplatform
Length of output: 308
🏁 Script executed:
#!/bin/bash
set -euo pipefail
files=(
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj
src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj
src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj
src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj
)
for f in "${files[@]}"; do
echo "===== $f ====="
sed -n '1,220p' "$f" | cat -n
echo
done
echo "===== SEARCH ====="
rg -n -S \
-e 'ScssCompilerService' \
-e 'dotnet watch' \
-e '<Watch ' \
-e 'sass' \
-e 'tsc' \
-e 'ScopedCss' \
-e 'Target Name=' \
src/BlazorUIRepository: bitfoundation/bitplatform
Length of output: 43852
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "===== ScssCompilerService ====="
sed -n '1,220p' src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Services/ScssCompilerService.cs | cat -n
echo "===== Demo server Program ====="
sed -n '1,120p' src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Program.cs | cat -n
echo "===== Windows client project ====="
sed -n '1,120p' src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj | cat -nRepository: bitfoundation/bitplatform
Length of output: 12325
🌐 Web query:
dotnet watch <Watch> item rebuilds custom watch items behavior hot reload documentation
💡 Result:
In.NET, dotnet watch manages file tracking and build triggers through the Watch item group in project files [1][2]. Adding custom files to be watched To include additional files for watching, you can add them to the Watch item group in your.csproj file using glob patterns [1][3]. For example, to add JavaScript files: Excluding files from being watched To prevent specific files or folders from triggering a rebuild or hot reload, you can use the Watch="false" attribute on Compile, EmbeddedResource, or ProjectReference items [1][4]. For broader exclusions of folders or file patterns, you can modify the DefaultItemExcludes property [1][5]. Behavior and Hot Reload When a file change is detected, dotnet watch assesses whether the change can be applied via Hot Reload, a technology that updates the running application without a full rebuild [6]. 1. Successful Hot Reload: For supported file types (such as.cs,.razor, or.cshtml), dotnet watch attempts to generate a patch and apply it to the running process [6]. If successful, the application updates immediately without a restart. 2. Rude Edits: If a change cannot be hot-reloaded (a "rude edit"), dotnet watch automatically falls back to a full rebuild and application restart [6]. 3. Advanced Configuration: dotnet watch performs a design-time build with the property DotNetWatchBuild set to true [1][4]. You can use this property to conditionally include items in your project file only when the watcher is active [1][2]:
Citations:
- 1: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-watch
- 2: https://github.com/aspnet/DotNetTools/blob/master/src/dotnet-watch/README.md
- 3: https://learn.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-9.0
- 4: https://www.mankier.com/1/dotnet-watch
- 5: 9.0.200 Hot Reload loading pages with files/folders it should be ignoring dotnet/sdk#46805
- 6: https://github.com/dotnet/sdk/blob/0a71034/src/BuiltInTools/dotnet-watch/README.md
🌐 Web query:
site:learn.microsoft.com dotnet watch Watch Include triggers rebuild restart custom file changes
💡 Result:
To include custom files or file types in the dotnet watch process, you must add them to the Watch item group in your project file (.csproj). By default, dotnet watch tracks Compile and EmbeddedResource items, along with common content files (like.json,.config, and those in wwwroot) [1][2][3]. You can extend this behavior by adding an ItemGroup to your project file. Use the Include attribute to specify the files (supporting glob patterns) and the Exclude attribute to filter out unwanted files [1][3]. Example configuration: When a file in the Watch group changes, dotnet watch will trigger a rebuild and restart of your application [1][4]. Additional tips for control: 1. Opting out: If you want to prevent specific files from triggering a watch event, you can add Watch="false" to an item's definition in the project file [1][3]. 2. Global exclusions: Starting in.NET 10, you can use the DefaultItemExcludes property to globally exclude entire folders or patterns from being watched, which applies to all default item types [1]. 3. Manual trigger: While dotnet watch handles changes automatically, you can also manually force a rebuild and restart by pressing Ctrl+R in the terminal where the command is running [4][5]. For complex scenarios where you need to watch projects or files outside the standard project structure, you can create a custom project file that defines a custom target and an ItemGroup for the files or projects you wish to monitor, then execute it using dotnet watch msbuild /t:TargetName [2][3].
Citations:
- 1: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-watch
- 2: https://learn.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-9.0
- 3: https://learn.microsoft.com/en-us/aspnet/core/tutorials/dotnet-watch?view=aspnetcore-10.0
- 4: https://learn.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-9.0
- 5: https://learn.microsoft.com/en-us/aspnet/core/test/hot-reload?view=aspnetcore-10.0
Remove *.scss from these Watch items. ScssCompilerService already recompiles these SCSS sources during development, so keeping them in dotnet watch only adds an extra rebuild/restart on every style edit. Keep the .ts and generated .razor.css watchers where they’re still needed.
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj#L42-L49src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj#L33-L39src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj#L32-L38src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj#L20-L23src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj#L34-L37
📍 Affects 5 files
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj#L42-L49(this comment)src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj#L33-L39src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj#L32-L38src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj#L20-L23src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj#L34-L37
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj`
around lines 42 - 49, Remove the SCSS Watch item from the project files at
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj:42-49,
src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj:33-39,
src/BlazorUI/Bit.BlazorUI.Extras/Bit.BlazorUI.Extras.csproj:32-38,
src/BlazorUI/Bit.BlazorUI.Icons/Bit.BlazorUI.Icons.csproj:20-23, and
src/BlazorUI/Bit.BlazorUI.Assets/Bit.BlazorUI.Assets.csproj:34-37. Keep the
existing TypeScript and generated .razor.css Watch items unchanged.
closes #12649
Summary by CodeRabbit
dotnet watchasset handling for Sass and TypeScript with more reliable include/exclude behavior.