'defer' | 'blocking' | 'module'
'defer'
Used to set how <script>
tags are loaded.
By default, the <script>
tag generated by Rsbuild will automatically set the defer
attribute to avoid blocking the parsing and rendering of the page.
When the browser encounters a <script>
tag with the defer attribute, it will download the script file asynchronously without blocking the parsing and rendering of the page. After the page is parsed and rendered, the browser executes the <script>
tags in the order they appear in the document.
Setting scriptLoading
to blocking
will remove the defer
attribute, and the script is executed synchronously, which means it will block the browser's parsing and rendering process until the script file is downloaded and executed.
When you need to set blocking
, it is recommended to set html.inject
to 'body'
to avoid page rendering being blocked.
When scriptLoading
is set to module
, the script can support ES modules syntax, and the browser will automatically delay the execution of these scripts by default, which is similar to defer
.