Unable to use JS Initializer for custom boot resource loader
#54,358 创建于 2024年3月4日
仓库指标
- Star
- (37,933 star)
- PR 合并指标
- (平均合并 16天 9小时) (30 天内合并 258 个 PR)
描述
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
As described in the docs
For Blazor Server, Blazor WebAssembly, and Blazor Hybrid apps:
- beforeStart(options, extensions): Called before Blazor starts. For example, beforeStart is used to customize the loading process, logging level, and other options specific to the hosting model.
- Client-side, beforeStart receives the Blazor options (options) and any extensions (extensions) added during publishing. For example, options can specify the use of a custom boot resource loader.
This is not true as we can see from the code, the JS initializers are loaded when moduleConfig.onConfigLoaded is called, which is only called after line 186. Therefore, any attempt from JS initializers to set custom boot resource loader function is too late.
https://github.com/dotnet/aspnetcore/blob/87cde8081456ce60ad4d233361bcd07f90dc977b/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts#L173-L197
Expected Behavior
The JS initializers are loaded before the the call to dotnet.create() and beforeStart is executed before passing the options.* to dotnet.with*()
Steps To Reproduce
I have created a minimal reproducible sample in the repository https://github.com/mingyaulee/BlazorJsInitializer With a JS initializer file
https://github.com/mingyaulee/BlazorJsInitializer/blob/main/BlazorApp/MyLibraryInitializer.js
When loaded shows the following logs:
Exceptions (if any)
No response
.NET Version
8.0.2
Anything else?
No response